HDU 1978 How many ways
来源:互联网 发布:淘宝账号实名认证更换 编辑:程序博客网 时间:2024/04/29 06:20
题目地址:点击打开链接
思路:看清题,机器人只能向下或向右走,和杭电1028挺像,把代码随便改了下,结果老是运行出错,把代码嵌到别人的代码试试才发现死循环了,每次走的步数是向下和和向右的和
错误代码:
#include <iostream>#include<cstring>using namespace std;int map1[105][105];int dp[105][105];int n,m;int dfs(int x,int y){ int newx,newy,i,j; if(dp[x][y] || !map1[x][y]) return dp[x][y]; for(i=0; i<=map1[x][y]; i++) { for(j=0; j<=map1[x][y]-i; j++) { newx = x + i; newy = y + j; if(newx>=0 && newy>=0 && newx<n && newy<m)//i和j同时为0就陷入死循环了 dp[x][y] = (dp[x][y] + dfs(newx,newy)) % 10000; } } return dp[x][y];}int main(){ int i,j,t; cin>>t; while(t--) { cin>>n>>m; memset(dp,0,sizeof(dp)); for(i=0; i<n; i++) { for(j=0; j<m; j++) { cin>>map1[i][j]; } } dp[n-1][m-1] = 1; cout<<dfs(0,0)<<endl; } return 0;}
AC代码:
dp[x][y]记录的是点(x,y)到点(n-1,m-1)的数量,dp[x][y]的数量可以由它所到达的点的dp[x][y]的和求出来
#include <iostream>#include<cstring>using namespace std;int map1[105][105];int dp[105][105];int n,m;int dfs(int x,int y){ int newx,newy,i,j; if(dp[x][y] || !map1[x][y])//map[i][j]为0时肯定没有到点(n-1,m-1)的路,返回dp[x][y],此时dp[x][y]为0 return dp[x][y]; for(i=0; i<=map1[x][y]; i++) { for(j=0; j<=map1[x][y]-i; j++) { newx = x + i; newy = y + j; if(newx>=0 && newy>=0 && newx<n && newy<m && i+j!=0) dp[x][y] = (dp[x][y] + dfs(newx,newy)) % 10000; } } return dp[x][y];}int main(){ int i,j,t; cin>>t; while(t--) { cin>>n>>m; memset(dp,0,sizeof(dp)); for(i=0; i<n; i++) { for(j=0; j<m; j++) { cin>>map1[i][j]; } } dp[n-1][m-1] = 1; cout<<dfs(0,0)<<endl; } return 0;}
0 0
- hdu 1978 How many ways
- hdu 1978 How many ways
- hdu 1978 How many ways
- hdu 1978 How many ways
- hdu 1978 How many ways
- hdu 1978 How many ways
- hdu 1978 How many ways
- HDU 1978 How many ways
- hdu 1978 How many ways
- hdu 1978 How many ways
- HDU - 1978 How many ways
- hdu 1978 How many ways
- hdu 1978 How many ways
- hdu 1978 How many ways
- hdu 1978 How many ways
- HDU 1978 How many ways
- HDU 1978 How many ways
- HDU 1978 How many ways
- Arbitrage【POJ--2240】【SPFA】
- HTML和JavaScript函数之间的关系
- Installing NodeJS, Grunt, and Bower with cPanel and CentOS or CloudLinux
- 设置环境变量时,export只对当前登录bash登录session有用,放在内存中。
- 在android下实现多进程kill
- HDU 1978 How many ways
- 面试题杂项
- MVVM:模型-视图-视图模型(Model-View-ViewModel)
- ADF工具类:TaskFlowUtils.java 源代码
- I2C总线之(一)---概述
- cocos2dx xcoder 上传APP审核碰到的各种问题整理
- Hadoop/mapreduce
- 项目中使用Quartz集群分享
- Python Paste.deploy 笔记