判断迷宫出路
来源:互联网 发布:达芬奇调色软件价格 编辑:程序博客网 时间:2024/05/21 09:25
题目链接
题目分析
思路
深度优先探索
分析
将WA变为AC
1、因为输入中有字符,在每输入一行要回车的地方(会产生回车符)添加getchar(),吃掉回车符。
2、将return df(d1,d2);
改为if(df(d1,d2)) return true;
代码
#include<stdio.h>#include<string.h>using namespace std;char a[25][25];int flag[25][25];int dd[4][2]={{1,0},{0,1},{-1,0},{0,-1}};bool df(int x,int y){ for(int i=0;i<4;i++){//遍历上下左右4个点 int d1=x+dd[i][0]; int d2=y+dd[i][1]; if(a[d1][d2]=='.'&&flag[d1][d2]==0&&a[d1][d2]!='#'){//可通过 flag[d1][d2]=1;//标记为已走 if(df(d1,d2)) //return df(d1,d2);会wa return true; } if(a[d1][d2]=='@')//终点 return true; } return false;}int main(){ int m,n,s1,s2; int T; scanf("%d",&T); getchar();//吃回车符 while(T--){ scanf("%d%d",&n,&m); getchar();//吃回车符 memset(flag,0,sizeof(flag)); memset(a,'#',sizeof(a)); for(int i=1;i<=m;i++){ for(int j=1;j<=n;j++){ scanf("%c",&a[i][j]); if(a[i][j]=='s'){//起点 s1=i; s2=j; } } getchar();//吃回车符 } if(df(s1,s2)) printf("yes\n"); else printf("no\n"); } return 0;}
0 0
- 判断迷宫出路
- 迷宫出路
- 递归寻求迷宫出路
- 寻找迷宫的出路
- 寻找迷宫出路
- 深度优先搜索找迷宫的出路
- 堆栈实现迷宫出路(C语言)
- 一个搜索迷宫出路的程序
- 寻找迷宫的一条出路算法
- 求迷宫出路以及最优解,小试牛刀。
- 寻找迷宫的一条出路 (o:通路,X障碍)
- poj 2251 < bfs 求3D迷宫出路>
- 算法之老鼠找迷宫2-找出所有出路
- 出路
- 出路
- 出路
- 出路
- 出路
- 如何判定当前浏览器是ie浏览器
- 通过重写ViewGroup学习onMeasure()和onLayout()方法
- 矩阵的点乘与叉乘
- web前端基础第10天jsdfs
- POJ 1019:Number Sequence
- 判断迷宫出路
- (模板题)poj 2190 Power of Cryptography(二分查找)
- poj 2586 Y2K Accounting Bug
- css布局
- mysql主从复制(二)之原理篇
- 网络编程之Socket ---TCP编程
- CentOS 6 时间,时区,设置修改及时间同步
- 深度学习笔记(三)
- SAP Backgroud job