uva 825 Walking on the Safe Side(dp)
来源:互联网 发布:云免软件下载 编辑:程序博客网 时间:2024/05/22 15:15
dp[i][j]表示走到(i,j)这一步有多少种走法
要保证最短路径长度就只能左走或下走
于是转移方程:
dp[i][j]=dp[i-1][j]+dp[i][j-1]
数据不好读
每两组数据之间需要输出一个空行,不输出竟然是WA而不是PE,坑了好久
#include<stdio.h>#include<string.h>#define MAXN 1005int dp[MAXN][MAXN];int map[MAXN][MAXN];int n,m;char s[MAXN];int main(){int t,cas;scanf("%d",&cas);t=cas;while(t--){if(t!=cas-1) printf("\n");scanf("%d%d",&n,&m);for(int i=0;i<=n;i++)for(int j=0;j<=m;j++)dp[i][j]=0,map[i][j]=0;int x,y,a;getchar();for(int i=1;i<=n;i++){gets(s);int len=strlen(s);for(x=0;x<len;x++){if(s[x]==' '){a=0;for(y=x+1;y<=len;y++){if(s[y]==' '||s[y]=='\0'){map[i][a]=1;break;}else a=a*10+s[y]-'0';}x=y-1;}}}/*for(int i=1;i<=n;i++){for(int j=1;j<=m;j++)printf("%d ",map[i][j]);printf("\n");}*/dp[1][0]=1;for(int i=1;i<=n;i++)for(int j=1;j<=m;j++){if(map[i][j]) continue;dp[i][j]=dp[i-1][j]+dp[i][j-1];}printf("%d\n",dp[n][m]);}return 0;}
0 0
- dp uva-825-Walking on the Safe Side
- UVa 825 Walking on the Safe Side (DP)
- uva 825 - Walking on the Safe Side(dp)
- Uva-825 Walking on the Safe Side 水DP
- uva 825 Walking on the Safe Side(dp)
- UVA 825 Walking on the Safe Side 读入输出+DP
- UVa 825 Walking on the Safe Side(DP)
- Walking on the Safe Side - UVa 825 dp
- UVA - 825Walking on the Safe Side(dp)
- UVA - 825 Walking on the Safe Side (dp)
- UVA 825 --Walking on the Safe Side+DP
- uva 825 Walking on the Safe Side (dp)
- UVA 题目825 Walking on the Safe Side(DP)
- UVA 825 Walking on the Safe Side(DP)
- uva 825 Walking on the Safe Side
- UVA 825 Walking on the Safe Side
- UVa 825 - Walking on the Safe Side
- uva 825 - Walking on the Safe Side
- ftp state code
- 解决Mac Safari 删除密码后自动恢复的问题
- Linux 内核中断内幕
- Android编程实现连接Wifi(运用Wifi 相关 API)
- eclipse快捷键,比较实用
- uva 825 Walking on the Safe Side(dp)
- source insight设置tab键为4个空格
- java的学习记录6
- map用法
- [快捷工具] windows下批量删除空目录的简单方法
- 吉林大学2013级大一下学期程序设计作业:同学通讯录系统
- matlab中记录程序运行时间
- poj 3623 Best Cow Line, Gold (题意和3617一样只要代码中的范围改一下)
- Java Web开发Basic(四) JSON