dp[i][j][k]代表從(1,1)出發到達(i,j)時 總共拿k件物品且以(i,j)處物品為最後一件時有多少種方案 遍歷到(i,j)時就看左上角有多少位置的物品價值是小於(i,j)處物品 就從該處轉移而來
根據樣例推測題意 所拿物品相同時 路徑不同也不算同一種方案 所以從(ii,jj)轉移(i,j)時要乘兩點之間不同路徑數 即c( (j-jj+i-ii),min(j-jj,i-ii) )
最後把所有dp[i][j][kk]累加即可 同時還要算上(i,j)到(n,m)的不同路徑數
#include using namespace std;
typedef long long ll;
const ll mod=1e9+7;
const int maxn=50+10;
const int maxk=10+10;
ll dp[maxn][maxn][maxk];
ll pre[maxn],inv[maxn];
int val[maxn][maxn];
int n,m,kk;
ll quickpow(ll a,ll b)
return res;
}void init()
}ll getcnk(int n,int k)
int main()
}for(i=1;i<=n;i++)}}
}}}/*
for(i=1;i<=n;i++)
printf("\n");}*/
ans=0;
for(i=1;i<=n;i++)
}printf("%lld\n",ans);
return 0;
}
地宮取寶 藍橋杯試題
問題描述 x 國王有乙個地宮寶庫。是 n x m 個格仔的矩陣。每個格仔放一件寶貝。每個寶貝貼著價值標籤。地宮的入口在左上角,出口在右下角。小明被帶到地宮的入口,國王要求他只能向右或向下行走。走過某個格仔時,如果那個格仔中的寶貝價值比小明手中任意寶貝價值都大,小明就可以拿起它 當然,也可以不拿 當小...
藍橋杯 2023年第五屆真題 地宮取寶
題目描述 x 國王有乙個地宮寶庫。是 n x m 個格仔的矩陣。每個格仔放一件寶貝。每個寶貝貼著價值標籤。地宮的入口在左上角,出口在右下角。小明被帶到地宮的入口,國王要求他只能向右或向下行走。走過某個格仔時,如果那個格仔中的寶貝價值比小明手中任意寶貝價值都大,小明就可以拿起它 當然,也可以不拿 當小...
藍橋杯 2023年第五屆真題 地宮取寶
x 國王有乙個地宮寶庫。是 n x m 個格仔的矩陣。每個格仔放一件寶貝。每個寶貝貼著價值標籤。地宮的入口在左上角,出口在右下角。小明被帶到地宮的入口,國王要求他只能向右或向下行走。走過某個格仔時,如果那個格仔中的寶貝價值比小明手中任意寶貝價值都大,小明就可以拿起它 當然,也可以不拿 當小明走到出口...