麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

藍(lán)橋杯第五屆 地宮取寶 (四維線性dp)

2019-11-10 20:41:22
字體:
供稿:網(wǎng)友
  問題描述  X 國王有一個地宮寶庫。是 n x m 個格子的矩陣。每個格子放一件寶貝。每個寶貝貼著價值標(biāo)簽?! 〉貙m的入口在左上角,出口在右下角。  小明被帶到地宮的入口,國王要求他只能向右或向下行走。  走過某個格子時,如果那個格子中的寶貝價值比小明手中任意寶貝價值都大,小明就可以拿起它(當(dāng)然,也可以不拿)。  當(dāng)小明走到出口時,如果他手中的寶貝恰好是k件,則這些寶貝就可以送給小明。  請你幫小明算一算,在給定的局面下,他有多少種不同的行動方案能獲得這k件寶貝。輸入格式  輸入一行3個整數(shù),用空格分開:n m k (1<=n,m<=50, 1<=k<=12)  接下來有 n 行數(shù)據(jù),每行有 m 個整數(shù) Ci (0<=Ci<=12)代表這個格子上的寶物的價值輸出格式  要求輸出一個整數(shù),表示正好取k個寶貝的行動方案數(shù)。該數(shù)字可能很大,輸出它對 1000000007 取模的結(jié)果。樣例輸入2 2 21 22 1樣例輸出2樣例輸入2 3 21 2 32 1 5樣例輸出14題目分析:數(shù)據(jù)量不大,考慮用四維dp,dp[i][j][ma][num]表示到點(i,j)時最大值為ma取得了num個寶貝的方法數(shù),對于某個點如果它的寶藏值大于當(dāng)前最大值,則我們可以取也可以不取,否則我們只能不取,因此轉(zhuǎn)移方程:if(ma < val[i][j])  dp[i] [j] [ val[i][j] ] [num + 1] = (dp[i] [j] [ val[i][j] ] [num + 1] + dp[i - 1] [j] [ma] [num] + dp[i] [j - 1] [ma] [num]) % MOD //取dp[i] [j] [ma] [num] = (dp[i] [j] [ma] [num] +dp[i - 1] [j] [ma] [num] + dp[i] [j - 1] [ma] [num]) % MOD //不取 (這里沒有else,因為不論我們能不能取,我們都可以選擇不取),最后我們只要累加dp[n][m][各最大值][k]的值即可,初始dp[1][1][val[1][1]][1] = 1第一個點取,dp[1][1][0][0]第一點不取這題還有兩個坑點,第一:上述轉(zhuǎn)移方程要分成兩段寫,因為是對1e9+7取模,我們考慮最壞的情況,括號里的數(shù)就可能超int。第二:寶物的價值有可能是0,因為初始化為0,因此混淆了空的點和價值為0的點,因此我們讓每個寶藏的價值自增1
#include <cstdio>#include <cstring>#define MOD 1000000007int dp[55][55][15][15];int val[55][55];int main(){    int n, m, k;    scanf("%d %d %d", &n, &m, &k);    for(int i = 1; i <= n; i++)    {        for(int j = 1; j <= m; j++)        {            scanf("%d", &val[i][j]);            val[i][j] ++;        }    }    memset(dp, 0, sizeof(dp));    dp[1][1][val[1][1]][1] = 1;    dp[1][1][0][0] = 1;    for(int i = 1; i <= n; i++)    {        for(int j = 1; j <= m; j++)        {            if(i == 1 && j == 1)                continue;            for(int num = 0; num <= k; num++)            {                for(int ma = 0; ma <= 13; ma++)                {                    if(ma < val[i][j])                    {                        dp[i][j][val[i][j]][num + 1] = (dp[i][j][val[i][j]][num + 1] + dp[i - 1][j][ma][num]) % MOD;                        dp[i][j][val[i][j]][num + 1] = (dp[i][j][val[i][j]][num + 1] + dp[i][j - 1][ma][num]) % MOD;                        }                    dp[i][j][ma][num] = (dp[i][j][ma][num] + dp[i - 1][j][ma][num]) % MOD;                    dp[i][j][ma][num] = (dp[i][j][ma][num] + dp[i][j - 1][ma][num]) % MOD;                }            }        }    }    int ans = 0;    for(int i = 0; i < 13; i++)        ans = (ans + dp[n][m][i][k]) % MOD;    PRintf("%d/n", ans);}
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 欧美日韩大片在线观看 | wwwxxx视频| 曰批全过程40分钟免费视频多人 | 97干色 | 亚洲一级电影在线观看 | 爽爽淫人综合网网站 | www视频免费观看 | 91av亚洲| 亚洲一区二区三区91 | 精品二区在线观看 | 在线观看精品视频 | 一级国产航空美女毛片内谢 | 中文字幕在线观看视频www | 久久亚洲精品久久国产一区二区 | 中文在线日韩 | 日本高清视频网站www | 激情久久一区二区 | 久久精品国产99国产精品亚洲 | mmmwww| 天天看夜夜爽 | 中国老女人一级毛片视频 | av电影在线观看网址 | 成人在线观看免费爱爱 | 免费性爱视频 | 国产精品野外av久久久 | 免费a级网站| 5xsq在线视频 | 亚洲精品午夜国产va久久成人 | 日韩大片在线永久观看视频网站免费 | 久久人添人人爽人人爽人人片av | 国产亚洲精品久久午夜玫瑰园 | 欧美一区二区三区久久精品视 | 亚洲欧美一区二区三区在线观看 | 久草干| 黄色伊人网站 | 999久久久 | 黄色羞羞| 久久久久久久爱 | 黄色网址免费在线播放 | 激情黄页 | 精品国产一区二区三区四区在线 |