NYOJ-最小步数(bfs)
来源:互联网 发布:手机pdf语音朗读软件 编辑:程序博客网 时间:2024/06/09 02:49
NYOJ-58最小步数
时间限制:3000 ms | 内存限制:65535 KB难度:4
描述
这有一个迷宫,有0~8行和0~8列: 1,1,1,1,1,1,1,1,1 1,0,0,1,0,0,1,0,1 1,0,0,1,1,0,0,0,1 1,0,1,0,1,1,0,1,1 1,0,0,0,0,1,0,0,1 1,1,0,1,0,1,0,0,1 1,1,0,1,0,1,0,0,1 1,1,0,1,0,0,0,0,1 1,1,1,1,1,1,1,1,10表示道路,1表示墙。 现在输入一个道路的坐标作为起点,再如输入一个道路的坐标作为终点,问最少走几步才能从起点到达终点?(注:一步是指从一坐标点走到其上下左右相邻坐标点,如:从(3,1)到(4,1)。)
输入
第一行输入一个整数n(0<n<=100),表示有n组测试数据;随后n行,每行有四个整数a,b,c,d(0<=a,b,c,d<=8)分别表示起点的行、列,终点的行、列。
输出
输出最少走几步。
样例输入
23 1 5 73 1 6 7
样例输出
1211
#include<iostream>#include<queue>#include<algorithm>#include<cstdio>#include<cstring>using namespace std;const int maze[9][9]={1,1,1,1,1,1,1,1,1,1,0,0,1,0,0,1,0,1, 1,0,0,1,1,0,0,0,1,1,0,1,0,1,1,0,1,1, 1,0,0,0,0,1,0,0,1,1,1,0,1,0,1,0,0,1, 1,1,0,1,0,1,0,0,1,1,1,0,1,0,0,0,0,1, 1,1,1,1,1,1,1,1,1};typedef struct node{ int x,y; int step;}point;int vis[9][9];const int dir[4][2]={1,0,-1,0,0,1,0,-1};int sx,sy,ex,ey;void init(){ memset(vis,0,sizeof(vis));}int bfs(){ queue<point> qu; point temp={sx,sy,0}; qu.push(temp); vis[sx][sy]=1; while(!qu.empty()) { point v= qu.front(); int x=v.x;int y=v.y; if(x==ex&&y==ey) return v.step; vis[x][y]=1; for(int i=0;i<4;i++) { int tx=x+dir[i][0]; int ty=y+dir[i][1]; if(tx<0||tx>8||ty<0||ty>8) continue; if(!vis[tx][ty]&&!maze[tx][ty]) { vis[tx][ty]=1; point to; to.x=tx; to.y=ty; to.step=v.step+1; qu.push(to); } } qu.pop(); }}int main(){ int t; cin>>t; while(t--) { init(); cin>>sx>>sy>>ex>>ey; cout<<bfs()<<endl; } return 0;}
阅读全文
0 0
- nyoj 58 最小步数(bfs)
- NYOJ 58 最小步数(BFS)
- NYOJ-最小步数(bfs)
- NYOJ 58 最小步数【bfs】
- NYOJ 58 最小步数【bfs&dfs】
- nyoj 58 最小步数(入门bfs)
- NYOJ 58 最小步数(BFS && DFS)
- nyoj 58 最小步数问题 BFS
- NYOJ 58 最小步数(bfs)
- NYoj 58 最小的步数 (BFS
- nyoj最小步数
- nyoj-最小步数
- nyoj 58 最小步数 dfs与bfs均可
- NYOJ 58 最小步数 BFS queue 实现
- nyoj 58 最少步数(BFS)
- nyoj 最少步数(BFS,DFS)
- nyoj 58 最少步数 (bfs)
- nyoj——58 最小步数(DFS,BFS 迷宫问题)
- html设置单元格亮边框颜色
- NYOJ-一笔画问题(并查集+欧拉回路)
- git常用命令小结
- BZOJ4843 [Neerc2016]Expect to Wait
- RTP解包
- NYOJ-最小步数(bfs)
- html设置单元格暗边框颜色
- html单元格背景
- C# 参数的默认值
- CS231N-Lecture5 Training Neural Network
- 宋体字体大小PT对照与换算
- html设置表头格式
- EventBus
- qt5 arm linuxfb旋转显示非eglfs显示