地宫取宝
思路分析
代码实现
#include<bits/stdc++.h>
using namespace std;
const int N=55,mod=1000000007;
int w[N][N];
int f[N][N][13][14];
int n,m,k;
int main()
{
cin>>n>>m>>k;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
cin>>w[i][j];
w[i][j]++;
}
}
f[1][1][1][w[1][1]]=1;
f[1][1][0][0]=1;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
for(int u=0;u<=k;u++){
for (int v=0;v<=13;v++){
f[i][j][u][v]=(f[i][j][u][v]+f[i-1][j][u][v])%mod;
f[i][j][u][v]=(f[i][j][u][v]+f[i][j-1][u][v])%mod;
if(u>0 && v==w[i][j]){
for(int c=0;c<v;c++){
f[i][j][u][v]=(f[i][j][u][v]+f[i-1][j][u-1][c])%mod;
f[i][j][u][v]=(f[i][j][u][v]+f[i][j-1][u-1][c])%mod;
}
}
}
}
}
}
int res=0;
for(int i=0;i<=13;i++)
res=(res+f[n][m][k][i])%mod;
cout<<res;
return 0;
}
同类题型
视频讲解
⬅️ 合唱队形 🏠 00-刷题理模型 ➡️ 导弹防御系统
💬 评论