codevs 1215 迷宫 广搜bfs 深搜dfs
来源:互联网 发布:淘宝买手机哪家店好 编辑:程序博客网 时间:2024/06/07 06:28
题目链接:http://codevs.cn/problem/1215/
一个纯广搜的题目.广搜和深搜都可以
广搜代码如下
#include<iostream>#include<cstdio>#include<cstring>#include<queue>using namespace std;int main(){ int num,n,x0,y0,x1,y1,x2,y2,x3,y3,flag,dir[4][2]={{1,0},{0,1},{-1,0},{0,-1}};queue<pair<int,int> > st;char a[20][20];cin>>num;while(num--){ cin>>n; flag=1; memset(a,0,sizeof(a)); for(int i=0;i<n;i++){ cin>>a[i]; for(int j=0;j<n;j++) if(a[i][j]=='s') x0=i,y0=j; else if(a[i][j]=='e') x1=i,y1=j;}//cout<<x0<<y0<<endl<<x1<<y1<<endl;st.push(make_pair(x0,y0));a[x0][y0]='#';while(!st.empty()){ x2=st.front().first; y2=st.front().second; if(x2==x1&&y2==y1){ cout<<"YES"<<endl; flag=0; break; } st.pop(); for(int i=0;i<4;i++){ x3=x2+dir[i][0]; y3=y2+dir[i][1]; if(x3>=0&&y3>=0&&x3<n&&y3<n&&a[x3][y3]!='#'){ st.push(make_pair(x3,y3)); a[x3][y3]='#'; } }}if(flag) cout<<"NO"<<endl;while(st.empty()) st.pop();}}
1 0
- codevs 1215 迷宫 广搜bfs 深搜dfs
- POJ3984 迷宫问题(深搜DFS+广搜BFS)搜索记录坐标,坑
- 广搜BFS 迷宫问题
- 迷宫问题(广搜 bfs)
- Codevs 1215 迷宫 裸BFS
- Codevs 1215 迷宫(DFS)
- 究竟应该采用“深搜”(DFS)还是“广搜”(BFS)?
- noj:广搜 (bfs) and 深搜(dfs) 整理
- 图的遍历 (深搜DFS与广搜BFS)
- 深搜(DFS)VS 广搜(BFS)
- 图的遍历-深搜(DFS)和广搜(BFS)
- NYOJ58 最少步数(深搜DFS+广搜BFS+剪枝)
- HDU1372 Knight Moves(广搜BFS+深搜DFS)
- 迷宫问题 dfs bfs
- BFS,DFS,迷宫
- POJ-3984-迷宫问题-BFS(广搜)-手写队列
- BFS(广搜) 电子老鼠闯迷宫
- Codevs 3411 洪水 BFS || DFS
- 父类子类静态代码块,构造方法的执行顺序
- 兰顿蚂蚁
- 220. Contains Duplicate III
- ssm框架面试题1
- 嵌入式linux利用ln映射设备驱动
- codevs 1215 迷宫 广搜bfs 深搜dfs
- Linux下安装并使用protobuf
- SourceTree配合Github 提交本地项目到Github
- C++常用容器总结
- bzoj2138
- Android的Activity的小知识点
- 输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,。
- Cookie 的添加与删除
- JAVA设计模式--单例模式