HDU 1010 Tempter of the Bone(DFS)
2015-10-12 16:27
351 查看
题意:判断,能否从S到D,恰好在T时间到。
#include<stdio.h> #include<string.h> #include<algorithm> using namespace std; const int maxm=10; int dir[4][2]={{0,1},{0,-1},{1,0},{-1,0}}; char map[maxm][maxm]; int vis[maxm][maxm]; int x1,y1; int m,n,T; int ok; void dfs(int x,int y,int step) { if(ok||step>T) { return; } else if(map[x][y]=='D'&&step==T) { ok=1; return; } for(int i=0;i<4;i++) { int sx=x+dir[i][0]; int sy=y+dir[i][1]; if(sx>=0&&sx<m&&sy>=0&&sy<n&&!vis[sx][sy]&&map[sx][sy]!='X') { vis[sx][sy]=1; dfs(sx,sy,step+1); vis[sx][sy]=0; } } } int main() { while(scanf("%d%d%d",&m,&n,&T)!=EOF&&(m+n+T)) { memset(vis,0,sizeof(vis)); for(int i=0;i<m;i++) { scanf("%s",map[i]); for(int j=0;j<n;j++) { if(map[i][j]=='S') { x1=i; y1=j; } } } ok=0; vis[x1][y1]=1; dfs(x1,y1,0); if(ok) { printf("YES\n"); } else { printf("NO\n"); } } return 0; }
相关文章推荐
- Json格式获取里面某个字段的数据获取天气接口
- R语言运行环境
- 微信公众号unionid问题
- 法国石墨烯研究者成功合成二维材料锗烯
- EasyMock
- chrome打开本地文件目录
- (转)C/C++ 程序设计员应聘常见 面试笔试 试题深入剖析
- 什么是SDK? Software Development Kit
- 大杂烩——提升效率的技能
- 第4周SHH数据结构—【项目4-猴子选大王】
- Android Studio Tips -- 布局预览
- Android Studio系列教程五--Gradle命令详解与导入第三方包
- Hammer.js
- 矩阵分解方法
- CSS3 transition属性
- Java基础知识强化之IO流笔记59:打印流
- 左右TextView旋转门问题
- 项目进度管理、项目成本管理作业
- 深入详解Struts2——架构剖析
- 第四周 项目1 建立单链表