How many ways

Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 5422    Accepted Submission(s): 3185

Problem Description
这是一个简单的生存游戏,你控制一个机器人从一个棋盘的起始点(1,1)走到棋盘的终点(n,m)。游戏的规则描述如下:
1.机器人一开始在棋盘的起始点并有起始点所标有的能量。
2.机器人只能向右或者向下走,并且每走一步消耗一单位能量。
3.机器人不能在原地停留。
4.当机器人选择了一条可行路径后,当他走到这条路径的终点时,他将只有终点所标记的能量。

如上图,机器人一开始在(1,1)点,并拥有4单位能量,蓝色方块表示他所能到达的点,如果他在这次路径选择中选择的终点是(2,4)

点,当他到达(2,4)点时将拥有1单位的能量,并开始下一次路径选择,直到到达(6,6)点。
我们的问题是机器人有多少种方式从起点走到终点。这可能是一个很大的数,输出的结果对10000取模。

Input
第一行输入一个整数T,表示数据的组数。
对于每一组数据第一行输入两个整数n,m(1 <= n,m <= 100)。表示棋盘的大小。接下来输入n行,每行m个整数e(0 <= e < 20)。
Output
对于每一组数据输出方式总数对10000取模的结果.
Sample Input
1 6 6 4 5 6 6 4 3 2 2 3 1 7 2 1 1 4 6 2 7 5 8 4 3 9 5 7 6 6 2 1 5 3 1 1 3 7 2
Sample Output
3948
Author
xhd
Source
2008杭电集训队选拔赛
Recommend
wangye   |   We have carefully selected several similar problems for you:  1421 1789 1159 1176 1257 
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
#define maxn 121
int main()
{int dp[maxn][maxn],num[maxn][maxn],T,n,m;scanf("%d",&T);while(T--){scanf("%d%d",&n,&m);for(int i=1;i<=n;i++)for(int j=1;j<=m;j++)scanf("%d",&num[i][j]);memset(dp,0,sizeof(dp));dp[1][1]=1;for(int i=1;i<=n;i++){for(int j=1;j<=m;j++){if(i==n&&j==m)    continue;dp[i][j] %= 10000;for(int x=i;x<=num[i][j]+i&&x<=n;x++){for(int y=j;y<=num[i][j]+j&&y<=m;y++){if(x==i&&y==j)    continue;if(num[i][j]>=x-i+y-j){dp[x][y] += dp[i][j];//不断地把前面的得出的方法数加到后面,每一点就代表从起点到这一点的方法数}}}}}dp[n][m] %= 10000;printf("%d\n",dp[n][m]);}return 0;
}

转载于:https://www.cnblogs.com/l609929321/p/7157467.html

dp递推 hdu1978相关推荐

  1. Two Arrays(DP递推)

    You are given two integers nn and mm. Calculate the number of pairs of arrays (a,b)(a,b) such that: ...

  2. HDU 4489 (DP递推计数)

    DP 递推计数 题意: 这是一道比较神奇的题,很考验思维:有n个高低不同的人,现在需要进行排列,排列一定要满足两种方式 高低高··· 低高低··· 求出有多少排列方式. 思路: 我们的切入点是第i个人 ...

  3. 动态规划入门之dp递推~

    欢迎访问https://blog.csdn.net/lxt_Lucia-- 宇宙第一小仙女\(^o^)/--萌量爆表求带飞=≡Σ((( つ^o^)つ~ dalao们点个关注呗-- 本篇文章重在递推,不 ...

  4. hdu 1723 DP/递推

    题意:有一队人(人数 ≥ 1),开头一个人要将消息传到末尾一个人那里,规定每次最多可以向后传n个人,问共有多少种传达方式. 这道题我刚拿到手没有想过 DP ,我觉得这样传消息其实很像 Fibonacc ...

  5. POj 3420 Quad Tiling 状态压缩DP+递推+矩阵快速幂

    哈哈,写了好久的,总算对了. 接下来介绍两种思路: 先介绍一种   递推+矩阵的快速幂的方法 一种DP的思想考虑4×n的最后一列  ,可以放的方法一共有5种 1.放4个 1×2  则 为dp[n-2] ...

  6. BZOJ 3329: Xorequ(数位dp+递推)

    传送门 解题思路 可以把原式移项得\(x\)^\(2x\)=\(3x\),而\(x+2x=3x\),说明\(x\)二进制下不能有两个连续的\(1\).那么第一问就是一个简单的数位\(dp\),第二问考 ...

  7. Power oj2498/DP/递推

    power oj 2498 /递推 2498: 新年礼物 Time Limit: 1000 MS Memory Limit: 65536 KB Total Submit: 12 Accepted: 3 ...

  8. HDU-5965 扫雷(dp / 递推)

    传送门 扫雷游戏是晨晨和小璐特别喜欢的智力游戏,她俩最近沉迷其中无法自拔. 该游戏的界面是一个矩阵,矩阵中有些格子中有一个地雷,其余格子中没有地雷. 游戏中,格子可能处于己知和未知的状态.如果一个己知 ...

  9. 2019.08.20【NOIP提高组】模拟 B 组 排序、DP+递推、矩阵乘法+数位DP/类欧

    文章目录 0 旅游(travel) 1 做梦(dream) 2 数数(count) 初见时,她说,"我无力自保,无处可去,无人可依." 多年后,他说,"我教你射箭,你已有 ...

最新文章

  1. 关于虚拟空间与物理空间思想的解析
  2. 查看服务器上读的是哪个配置文件
  3. Dubbo架构设计详解
  4. 二叉排序树查找的c语言程序,C语言二叉排序(搜索)树实例
  5. 通过Java代码浅谈HTTP协议
  6. android语音识别开源代码,android语音识别,有没有相应的源码,教程可以推荐啊?
  7. CPU亲和性(affinity)sched_setaffinity() 和 sched_getaffinity()
  8. openfire 详细介绍一
  9. Ubuntu14.04安装搜狗输入法的一点小问题
  10. 【Git/Github学习笔记】Git分支使用场景和标签管理、总结
  11. 【Spring-tx】spring事务和mybatis的联系
  12. 通过chrome的拓展程序访问其他网页
  13. 风尚云网学习-js实现禁用右键以及F12
  14. 全球最牛逼的并发架构,抖音排第二,它排第一!
  15. 爱情的诗·11~15节
  16. alook浏览器_Alook浏览器app下载|Alook浏览器安卓版下载 v3.4.1 - 跑跑车安卓网
  17. Altium Designer15入门
  18. vue-cl 有一些静态资源不想经过webpack打包那么应该public 下面
  19. glog安装配置及使用
  20. 计算属性,方法与监听器(3-4)

热门文章

  1. Xcode and Unity missing library ‘lGoogleUtilities‘
  2. 关于包装java_[java初探09]__关于java的包装类
  3. Requests库的主要方法:requests.request为requests.get和requests.post两个的汇总,只是需要传方法...
  4. 关于APP更新,两包共存的解决方案
  5. javaWeb开发总结 ---- 前端数据插入到后台
  6. DataList用法
  7. vue-resource全攻略
  8. iOS 富文本风格NSMutableParagraphStyle、定制UITextView插入图片和定制复制
  9. 数据库系统原理(第三章数据库设计 )
  10. CLR基础,CLR运行过程,使用dos命令创建、编译、运行C#文件,查看IL代码