NYOJ 58 最少步数 【BFS】
来源:互联网 发布:淘宝网书本 编辑:程序博客网 时间:2024/05/21 17:00
题意:不解释。
策略:如题;
这道题可以用深搜也可以用广搜,我以前写的是用的深搜,最近在学广搜,就拿这道题来练练手。
代码:
#include<stdio.h>#include<string.h>#include<queue>using std::queue;bool vis[20][20];const int dir[4][2] = {1, 0, -1, 0, 0, 1, 0, -1};//方向int map[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,};struct Node{int pos[2];//pos[0] = x, pos[1] = yint step;};Node st, en;bool match(Node a, Node b) //判断是不是到达终点{return (a.pos[0] == b.pos[0]&&a.pos[1] == b.pos[1]);}int bfs(){queue<Node> q;int i, j;memset(vis, 0, sizeof(vis)); q.push(st);vis[st.pos[0]][st.pos[1]] = 1;int ans = 0x3f3f3f3f; //初始化while(!q.empty()){Node u = q.front();if(match(u, en)){ //wa了一次是因为没有判断终点是不是起点ans = u.step;break;}for(i = 0; i < 4; i ++){Node v;v.pos[0] = u.pos[0]+dir[i][0];v.pos[1] = u.pos[1]+dir[i][1];v.step = u.step+1;if(match(v, en)){if(v.step < ans)ans = v.step;}else if(!vis[v.pos[0]][v.pos[1]]&&!map[v.pos[0]][v.pos[1]]){q.push(v);vis[v.pos[0]][v.pos[1]] = 1;}}q.pop();}return ans;}int main(){int t;scanf("%d", &t);while(t --){scanf("%d%d%d%d", &st.pos[0], &st.pos[1], &en.pos[0], &en.pos[1]);st.step = 0;printf("%d\n", bfs());}return 0;}
题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=58
0 0
- NYOJ 58 最少步数 【BFS】
- NYOJ 最少步数 58(BFS)
- nyoj 58 最少步数(BFS)
- NYOJ 58 最少步数(BFS)
- NYOJ 58 最少步数(bfs)
- nyoj 58 最少步数 【BFS】
- ACM--BFS--nyoj 58--最少步数
- NYOJ 58-最少步数【DFS&&BFS】
- nyoj 58 最少步数 (bfs)
- nyoj--58--最少步数(bfs&dfs)
- NYOJ - 最少步数【BFS】
- NYOJ 题目58 最少步数 (简单BFS)
- NYOJ 题目58 最少步数(BFS)
- nyoj 58 最少步数 【BFS+优先队列】
- DFS && BFS 最少步数(nyoj 58)
- nyoj 58最少步数 BFS+优先队列
- nyoj 最少步数(BFS,DFS)
- NYOJ 58 最少步数
- 域名反向解析
- Intent应用
- Android Notification通知详解
- ORACLE WITH AS 用法
- JavaScript动态改变页面元素
- NYOJ 58 最少步数 【BFS】
- 解决const char* 转char *方法
- 电脑端浏览器 以手机 mobile 形式 加载网页 可以安装插件 User Agent Switcher
- virtual judge 本地部署方案
- 狗狗40题~ (Volume A)
- Java研究之学习设计模式-简单工厂模式详解
- 【computer vision】目标检测的图像特征提取之——HOG特征
- 【阅读】《Head First HTML 与 CSS》第九章——盒模型
- TCP的拥塞控制