C 地宮取寶(動態規劃)

2021-10-09 20:27:13 字數 1473 閱讀 1627

x 國王有乙個地宮寶庫,是 n×m個格仔的矩陣,每個格仔放一件寶貝,每個寶貝貼著價值標籤。

地宮的入口在左上角,出口在右下角。

小明被帶到地宮的入口,國王要求他只能向右或向下行走。

走過某個格仔時,如果那個格仔中的寶貝價值比小明手中任意寶貝價值都大,小明就可以拿起它(當然,也可以不拿)。

當小明走到出口時,如果他手中的寶貝恰好是 k件,則這些寶貝就可以送給小明。

請你幫小明算一算,在給定的局面下,他有多少種不同的行動方案能獲得這 k件寶貝。

輸入格式

第一行 3個整數,n,m,k,含義見題目描述。

接下來 n行,每行有 m 個整數 ci用來描述寶庫矩陣每個格仔的寶貝價值。

輸出格式

輸出乙個整數,表示正好取 k個寶貝的行動方案數。

該數字可能很大,輸出它對 1000000007取模的結果。

資料範圍

1≤n,m≤50,1≤k≤12,0≤ci≤12

輸入樣例1:

2 2 2

1 22 1

輸出樣例1:

2輸入樣例2:

2 3 2

1 2 3

2 1 5

輸出樣例2:

14ac**:

#include

const

int mod=

1000000007

;int n,m,k;

int w[51]

[51];

int f[51]

[51][

13][14

];//(i,j,k,c)

//從起點走到(i,j)選了k個物品,

//最後一件物品價值為c的方案總數

intmain()

//在原點一件物品都沒選的方案數

f[1]

[1][

0][0

]=1;

//在原點選當前物品的方案數

f[1]

[1][

1][w[1][

1]]=

1;for(

int i=

1;i<=n;

++i)

for(

int j=

1;j<=m;

++j)}}

}int ans=0;

//統計答案

for(

int c=

0;c<=13;

++c) ans=

(ans+f[n]

[m][k]

[c])

%mod;

printf

("%d"

,ans)

;return0;

}

藍橋杯 地宮取寶(動態規劃)

題面如下 x 國王有乙個地宮寶庫,是 n m n m 個格仔的矩陣,每個格仔放一件寶貝,每個寶貝貼著價值標籤。地宮的入口在左上角,出口在右下角。小明被帶到地宮的入口,國王要求他只能向右或向下行走。走過某個格仔時,如果那個格仔中的寶貝價值比小明手中任意寶貝價值都大,小明就可以拿起它 當然,也可以不拿 ...

歷屆試題 地宮取寶

歷屆試題 地宮取寶 時間限制 1.0s 記憶體限制 256.0mb 提交此題 問題描述 x 國王有乙個地宮寶庫。是 n x m 個格仔的矩陣。每個格仔放一件寶貝。每個寶貝貼著價值標籤。地宮的入口在左上角,出口在右下角。小明被帶到地宮的入口,國王要求他只能向右或向下行走。走過某個格仔時,如果那個格仔中...

歷屆試題 地宮取寶

題目鏈結 問題描述 x 國王有乙個地宮寶庫。是 n x m 個格仔的矩陣。每個格仔放一件寶貝。每個寶貝貼著價值標籤。地宮的入口在左上角,出口在右下角。小明被帶到地宮的入口,國王要求他只能向右或向下行走。走過某個格仔時,如果那個格仔中的寶貝價值比小明手中任意寶貝價值都大,小明就可以拿起它 當然,也可以...