历届试题 地宫取宝
来源:互联网 发布:张辽和关羽谁厉害知乎 编辑:程序博客网 时间:2024/06/01 09:24
思路:参考的大神的代码,加了一点注释,地址:http://blog.csdn.net/rodestillfaraway/article/details/50529814
AC代码:
#include <iostream>#include <cstdio>#include <cstdlib>#include <algorithm>#include <queue>#include <stack>#include <map>#include <cstring>#include <climits>#include <cmath>#include <cctype>typedef long long ll;using namespace std;const int mod = 1000000007;int dp[55][55][15][15];//前2个是坐标,第三个是目前取到的件数,第四个是目前的最大值int map1[55][55];int main(){ int n,m,k; while(scanf("%d%d%d",&n,&m,&k) != EOF) { int max = 0; for(int i=1; i<=n; i++) { for(int j=1; j<=m; j++) { scanf("%d",&map1[i][j]); map1[i][j]++;//在这加1,是因为物品的价值有可能为0,所有物品价值数加1,不影响最后的结果 if(map1[i][j] > max) { max = map1[i][j]; } } } memset(dp,0,sizeof(dp)); dp[1][1][0][0] = 1; dp[1][1][1][map1[1][1]] = 1; for(int i=1; i<=n; i++) { for(int j=1; j<=m; j++) { //在这一个点不取,.总件数为0 dp[i][j][0][0] += dp[i-1][j][0][0] + dp[i][j-1][0][0];//注意是加等 dp[i][j][0][0] %= mod; for(int p=1; p<=k; p++) { //在这一点不取,总件数为p for(int val = 0; val <= max; val++) { dp[i][j][p][val] += dp[i-1][j][p][val]; dp[i][j][p][val] %= mod; dp[i][j][p][val] += dp[i][j-1][p][val]; dp[i][j][p][val] %= mod; } //到目前为止,只取1件,且目前的这一点取 if(p == 1) { dp[i][j][1][map1[i][j]] += dp[i-1][j][0][0]; dp[i][j][1][map1[i][j]] %= mod; dp[i][j][1][map1[i][j]] += dp[i][j-1][0][0]; dp[i][j][1][map1[i][j]] %= mod; } //到目前为止,只取p件,且目前的这一点取 else { for(int val = 0; val < map1[i][j]; val++) { dp[i][j][p][map1[i][j]] += dp[i-1][j][p-1][val]; dp[i][j][p][map1[i][j]] %= mod; dp[i][j][p][map1[i][j]] += dp[i][j-1][p-1][val]; dp[i][j][p][map1[i][j]] %= mod; } } } } } int sum = 0; for(int i=0; i<=max; i++) { sum += dp[n][m][k][i]; sum %= mod; } printf("%d\n",sum); } return 0;}
0 0
- 历届试题 地宫取宝
- 历届试题 地宫取宝
- 历届试题 地宫取宝
- 历届试题 地宫取宝
- 历届试题 地宫取宝
- 历届试题 地宫取宝
- 历届试题 地宫取宝
- 蓝桥杯 历届试题 地宫取宝
- 【蓝桥杯训练】 历届试题 地宫取宝
- 蓝桥杯 历届试题 地宫取宝
- 蓝桥杯 历届试题 地宫取宝
- 蓝桥杯 历届试题 地宫取宝
- 历届试题 地宫取宝 蓝桥杯
- 蓝桥杯 历届试题 地宫取宝
- 历届试题 地宫取宝 (DP)
- 蓝桥 历届试题 地宫取宝
- 蓝桥杯 历届试题 地宫取宝 【记忆化搜索】
- 历届试题 地宫取宝 (DP+记忆化DFS)
- 【leetcode】Array—— Maximum Product Subarray(152)
- symbol(s) not found for architecture arm64 与disable bit code
- 腾讯研究院发布《中国分享经济全景解读报告》
- 用R进行文本挖掘与分析:分词、画词云【2】
- SQLiteDatabase的使用
- 历届试题 地宫取宝
- windows mysql设置 账户root 密码
- hibernate用法注释积累
- 网页自动识别跳转手机或pc
- iOS开发系列--让你的应用“动”起来
- C语言&取址符、*寻址符(六)
- 中文排序
- Gzip解压缩、DES加密解密
- iOS中的预编译指令的初步探究