蓝桥杯 地宫取宝
来源:互联网 发布:java listfiles 排序 编辑:程序博客网 时间:2024/06/11 20:10
#include <iostream>#include <cstring> using namespace std;#define M 1000000007 #define MAX 51 #define MK 13int val[MAX][MAX]; int dp[MAX][MAX][MK][MK]; int n,m,k; int dfs(int i,int j,int s,int v){if (dp[i][j][s][v]>=0){ return dp[i][j][s][v]; } if (i==n&&j==m){ if (s==k){dp[i][j][s][v]=1; return dp[i][j][s][v]; }else if (s==k-1&&v<val[i][j]){ dp[i][j][s][v]=1; return dp[i][j][s][v]; }else{dp[i][j][s][v]=0; return dp[i][j][s][v]; }} int t=0; if (i!=n){if (v<val[i][j]){ t=dfs(i+1,j,s+1,val[i][j]); } t=(t+dfs(i+1,j,s,v))%M; } if (j!=m) {if (v<val[i][j]){ t=(t+dfs(i,j+1,s+1,val[i][j]))%M; } t=(t+dfs(i,j+1,s,v))%M; }dp[i][j][s][v]=t; return dp[i][j][s][v]; }int main(){memset(dp,-1,sizeof(dp)); cin>>n>>m>>k; for (int i=1;i<=n;i++){for (int j=1;j<=m;j++){cin>>val[i][j]; val[i][j]+=1; }} cout<<dfs(1,1,0,0)<<endl; return 0; }
0 0
- 蓝桥杯 地宫取宝
- 蓝桥杯 地宫取宝
- 蓝桥杯-地宫取宝
- 蓝桥杯 地宫取宝
- 蓝桥杯--地宫取宝
- 蓝桥杯 地宫取宝
- 蓝桥杯 地宫取宝
- 地宫取宝 蓝桥杯
- 蓝桥杯 地宫取宝
- 蓝桥杯-地宫取宝
- 蓝桥杯-地宫取宝
- 蓝桥杯:标题:地宫取宝
- 蓝桥杯 2014 地宫取宝
- [dp] 蓝桥杯 地宫取宝
- 蓝桥杯 地宫取宝 DP
- 蓝桥杯 地宫取宝__dp
- 2014蓝桥杯 地宫取宝
- 蓝桥杯—地宫取宝
- 特朗普的胜利——美国的民主不是我们想象的政治
- Android性能优化学习(一)内存泄漏
- 冒泡排序法
- 七牛 for ThinkPHP 正确使用及全功能开放
- 装配Bean(四)
- 蓝桥杯 地宫取宝
- 上课编程练习1
- Linux中正则表达式的应用
- KMP基础
- PHP使用PHPMailer类发送邮件
- 大数据(二)
- 笔记
- 2016年9,10,11月份工作心得
- ajax data 参数与 dateType 参数 400(request error)