ny 58 最少步数 (BFS)
题目:http://acm.nyist.net/JudgeOnline/problem.php?pid=58
就是一道简单的BFS 练习练习搜索,一次AC
- #include <iostream>
- #include <vector>
- #include <cstring>
- #include <cstdio>
- using namespace std;
- int a[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
- };
- bool bool_judge[9][9];
- typedef struct point
- {
- int x,y,t;
- point()
- {
- x = -1; y = -1; t = -1;
- }
- }point;
- vector<point>v;
- vector<point>::iterator p;
- point q;
- void init()
- {
- memset(bool_judge,false,sizeof(bool_judge));
- /* for(int i = 0; i < 9; i++)
- {
- for(int j = 0; j < 9; j++)
- printf("%d ",a[i][j]);
- printf("\n");
- }*/
- }
- void add(point k,int t)
- {
- if(k.x-1 >= 0 && a[k.x - 1][k.y] == 0 && bool_judge[k.x - 1][k.y] == false)
- {
- q.x = k.x - 1,q.y = k.y,q.t = t;
- v.push_back(q);
- bool_judge[k.x - 1][k.y] = true;
- }
- if(k.x + 1 <= 8 && a[k.x+1][k.y] == 0 && bool_judge[k.x+1][k.y] == false)
- {
- q.x = k.x + 1,q.y = k.y,q.t = t;
- v.push_back(q);
- bool_judge[k.x + 1][k.y] = true;
- }
- if(k.y - 1 >= 0 && a[k.x][k.y - 1] == 0 && bool_judge[k.x][k.y - 1] == false)
- {
- q.x = k.x,q.y = k.y - 1,q.t = t;
- v.push_back(q);
- bool_judge[k.x][k.y - 1] = true;
- }
- if(k.y + 1 <= 8 && a[k.x][k.y+1] == 0 && bool_judge[k.x][k.y + 1] == false)
- {
- q.x = k.x,q.y = k.y + 1,q.t = t;
- v.push_back(q);
- bool_judge[k.x][k.y + 1] = true;
- }
- }
- int BFS(int x2,int y2)
- {
- while(v.empty() != true)
- {
- q = v[0];
- p = v.begin();
- v.erase(p);
- //printf("chu %d %d\n",q.x,q.y);
- if(q.x == x2 && q.y == y2)
- {
- return q.t;
- }
- add(q,++q.t);
- }
- return 0;
- }
- int main()
- {
- init();
- int n;
- scanf("%d",&n);
- int x1,y1,x2,y2;
- while(n--)
- {
- scanf("%d%d%d%d",&x1,&y1,&x2,&y2);
- q.x = x1,q.y = y1,q.t = 0;
- v.push_back(q);
- bool_judge[x1][y1] = true;
- int sum = BFS(x2,y2);
- printf("%d\n",sum);
- v.clear();
- init();
- }
- return 0;
- }
ny 58 最少步数 (BFS)的更多相关文章
- 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 ...
- nyist 58 最小步数 BFS
最少步数 时间限制: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 ...
- 最少步数(bfs)
最少步数 时间限制: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 ...
- POJ 3126 Prime Path【从一个素数变为另一个素数的最少步数/BFS】
Prime Path Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 26475 Accepted: 14555 Descript ...
- 南阳理工 58 最少步数 (DFS)
描述 这有一个迷宫,有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, ...
- 最少步数(dfs + bfs +bfs优化)
最少步数 时间限制: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 ...
- 最少步数(bfs)
最少步数 时间限制: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 ...
- T1330 最少步数(#Ⅱ- 8)(广度优先搜索)
[题目描述] 在各种棋中,棋子的走法总是一定的,如中国象棋中马走“日”.有一位小学生就想如果马能有两种走法将增加其趣味性,因此,他规定马既能按“日”走,也能如象一样走“田”字.他的同桌平时喜欢下围棋, ...
- ACM 最少步数
最少步数 时间限制: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 ...
随机推荐
- asp.net预览图片
Aspx code <table> <tr> <td class="style3"> <asp:Label ID="Label1 ...
- js——事件
焦点:使浏览器能够区分用户输入的对象,当一个元素有焦点的时候,那么他就可以接收用户的输入. 我们可以通过一些方式给元素设置焦点 1.点击 2.tab 3.js 不是所有元素都能够接收焦点的.能够响应用 ...
- 如何在Eclipse中开发并调试自己的插件(或者说如何将自己的代码插件化)
Setting up Eclipse to create and debug plugins for ImageJ 最近在做一个关于卫星遥感全链路仿真的项目,由于项目是基于ImageJ开发,而Imag ...
- python two-dimensional array assignment initialize
#if you want to initialize a 9*9 two-dimensional array [([""]*9) for i in range(9)] #cauti ...
- linux杂记(二)主机硬盘规划
linux安装过程中,至少要两个partition,一个是[/],另一个是虚拟内存[swap].但比较不保险. 稍微麻烦点的方式: / /usr:linux操作系统 /home:使用者信息 /var: ...
- Android 6.0 以及HttpClient
Android 6.0 SDK,API Level 是 23.更新之后,就可以修改 compileSdkVersion 和targetSdkVersion 到 23 体验新的特性了. 同时 Andro ...
- drawable 另外一种形式dimens.xml
常见的Drawable,放置默认drawable一系列目录,有时候会发现drawable找不到的情况,其实还可以放另外一个目录下 values------->>dimens.xml < ...
- JS输出当前时间,且每秒变化
<div id="timer"></div> <script type="text/javascript"> window. ...
- JS倒计时器一只,顺便复习javascript时间相关函数
window.onload = function(){ var uS = 604800; //后台提供 : 秒 var day=hour=minute=second=0, timer; var dem ...
- codeforces 553D . Nudist Beach 二分
题目链接 有趣的题. 给一个图, n个点m条边. 有k个点不可选择. 现在让你选出一个非空的点集, 使得点集中strength最小的点的strength最大. strength的定义:一个点周围的点中 ...