最少步数 NYOJ 58
来源:互联网 发布:淘宝震动棒买家秀 编辑:程序博客网 时间:2024/05/17 20:47
最少步数
时间限制: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,1
0表示道路,1表示墙。
现在输入一个道路的坐标作为起点,再如输入一个道路的坐标作为终点,问最少走几步才能从起点到达终点?
(注:一步是指从一坐标点走到其上下左右相邻坐标点,如:从(3,1)到(4,1)。)
输入
第一行输入一个整数n(0
#include<cstdio>#include<cstring>#include<queue>#include<algorithm>using namespace std;const int MAXN=1e3+10;bool vis[MAXN][MAXN]; int map[9][9]={ //习惯开成map[MAXN][MAXN],初始化就错了,怎么找都找不出来 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};struct node{ int x; int y; int step;};int dir[4][2]={ 1,0, -1,0, 0,1, 0,-1};int si,sj,ei,ej,t;int bfs(int x,int y){ queue<node> que;//定义初始位置信息节点 node spos; spos.x=si; spos.y=sj; spos.step=0; que.push(spos);//将初始位置放进队列 vis[spos.x][spos.y]=true;//初始化起点已走过若不初始化则有可能 while(!que.empty()) { node now; now=que.front(); que.pop(); if(now.x==ei&&now.y==ej) return now.step; for(int i=0;i<4;++i)//如果当前位置不是终点,继续搜索 { node go; go.x=now.x+dir[i][0]; go.y=now.y+dir[i][1]; if(!map[go.x][go.y]&&!vis[go.x][go.y])//如果没有访问过且连通 { vis[go.x][go.y]=true; go.step=now.step +1; que.push(go); } } }}int main(){ scanf("%d",&t); while(t--) { scanf("%d%d%d%d",&si,&sj,&ei,&ej); memset(vis,false,sizeof(vis)); int ans=bfs(si,sj); printf("%d\n",ans); } return 0;}
0 0
- NYOJ 58 最少步数
- NYOJ-58:最少步数
- NYOJ 58 最少步数
- nyoj-58-最少步数
- nyoj 58-最少步数
- nyoj 58最少步数
- NYOJ 58 最少步数
- nyoj-58-最少步数
- NYoj 58 最少步数
- NYOJ 58 最少步数
- NYOJ-58 最少步数
- NYOJ 58 最少步数
- NYOJ 58 最少步数
- nyoj 58 最少步数
- nyoj 58 最少步数
- nyoj--58--最少步数
- nyoj--58 最少步数
- nyoj 58 最少步数
- 单例模式的套路
- 版本的更新提醒
- 【杭电】[1241]Oil Deposits
- URLConnection类
- 获取 Android 设备的唯一标识码
- 最少步数 NYOJ 58
- impdp导数据要求排除没必要的分区
- Lua学习总结(基本语法)
- java实现冒泡排序算法
- 关于二分查找及其上下界问题的一些思考
- 2016 Multi-University Training Contest 4
- poj1860 Currency Exchange
- 负载平衡问题(网络流)
- swig简单应用实战