C++ 实战测试——电子老鼠闯迷宫(BFS)
来源:互联网 发布:c语言数据类型长度代码 编辑:程序博客网 时间:2024/05/16 01:22
题目描述、分析
详见http://blog.csdn.net/ssl_qyh0ice/article/details/53769339
此处为C++做法
#include<iostream>using namespace std;int s1,s2,e1,e2,n;int a[100][100];int father[100];int state[100][3];int dx[4];int dy[4];void init(){ ios::sync_with_stdio(false); int i,j; cin>>n; cin>>s1>>s2>>e1>>e2; for (i=1;i<=n;i++) for (j=1;j<=n;j++) cin>>a[i][j]; dx[1]=1;dx[2]=-1;dx[3]=0;dx[4]=0; dy[1]=0;dy[2]=0;dy[3]=1;dy[4]=-1;}void print(int k,int s){ if (k==0) return; print(father[k],s+1); if (s==0) cout<<'('<<state[k][1]<<','<<state[k][2]<<")"<<endl; else cout<<'('<<state[k][1]<<','<<state[k][2]<<")-->";}void bfs(){ int tail,head,i; tail=1;head=0;state[1][1]=s1;state[1][2]=s2;father[1]=0; do { head++; for(i=1;i<=4;i++) if (a[state[head][1]+dx[i]][state[head][2]+dy[i]]==0) { tail++; state[tail][1]=state[head][1]+dx[i]; state[tail][2]=state[head][2]+dy[i]; state[tail][3]=state[head][3]+1; father[tail]=head; a[state[tail][1]][state[tail][2]]=1; if (state[tail][1]==e1&&state[tail][2]==e2) { print(tail,0); cout<<state[tail][3]+1<<endl; head=tail+1; } } }while (head<tail);}int main(){ init(); bfs(); return(0);}
第一次用C++好兴奋!!!!
欢迎各位点赞!!!!
1 0
- C++ 实战测试——电子老鼠闯迷宫(BFS)
- BFS(广搜) 电子老鼠闯迷宫
- 电子老鼠闯迷宫
- 电子老鼠闯迷宫
- 电子老鼠闯迷宫
- 电子老鼠闯迷宫
- 电子老鼠闯迷宫
- 电子老鼠闯迷宫
- 电子老鼠闯迷宫
- 电子老鼠闯迷宫
- 电子老鼠闯迷宫
- 电子老鼠闯迷宫
- 电子老鼠闯迷宫
- 电子老鼠闯迷宫
- 电子老鼠闯迷宫
- 电子老鼠闯迷宫
- 搜索算法——电子老鼠闯迷宫
- SSL JudgeOnline 1455——电子老鼠闯迷宫
- Android WebView 加载网页遇到的问题
- CAS单点登录例子
- Caused by: java.sql.SQLException: Field 'stu_id' doesn't have a default value
- 274. H-Index**
- small插件化方案踩坑
- C++ 实战测试——电子老鼠闯迷宫(BFS)
- 1122. Hamiltonian Cycle (25)
- 真随机数&&伪随机数
- 文件File
- WebSocket详解(二)应用实例
- 职位名称: Java技术经理
- 网上报考时间
- Android 关于获取内存的小方式
- Windows 2012 IIS7.5 安装PHP5