题目: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)的更多相关文章

  1. 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 ...

  2. 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 ...

  3. 最少步数(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 ...

  4. POJ 3126 Prime Path【从一个素数变为另一个素数的最少步数/BFS】

    Prime Path Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 26475 Accepted: 14555 Descript ...

  5. 南阳理工 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, ...

  6. 最少步数(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 ...

  7. 最少步数(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 ...

  8. T1330 最少步数(#Ⅱ- 8)(广度优先搜索)

    [题目描述] 在各种棋中,棋子的走法总是一定的,如中国象棋中马走“日”.有一位小学生就想如果马能有两种走法将增加其趣味性,因此,他规定马既能按“日”走,也能如象一样走“田”字.他的同桌平时喜欢下围棋, ...

  9. 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 ...

随机推荐

  1. [iOS]手把手教你实现微信小视频

    本文个人原创,转载请注明出处,谢谢. 前段时间项目要求需要在聊天模块中加入类似微信的小视频功能,这边博客主要是为了总结遇到的问题和解决方法,希望能够对有同样需求的朋友有所帮助. 效果预览: 这里先罗列 ...

  2. Web 应用性能提升 10 倍的 10 个建议

    转载自http://blog.jobbole.com/94962/ 提升 Web 应用的性能变得越来越重要.线上经济活动的份额持续增长,当前发达世界中 5 % 的经济发生在互联网上(查看下面资源的统计 ...

  3. 场景切换特效Transition——Cocos2d-x学习历程(十二)

    Transition 场景切换 在游戏中通常会用到一些场景的切换,比如从加载界面切换到欢迎界面.游戏中的所有场景存放在一个栈中,有且只有一个场景可以处于激活状态.直接replaceScene(即不适用 ...

  4. js 删除本身节点元素

    var theParent = document.getElementById("bq_ly");   theParent.parentNode.removeChild(thePa ...

  5. Could not lock surface java.lang.IllegalArgumentException

    08-07 14:46:33.795: E/Surface(4927): dequeueBuffer failed (Invalid argument) 08-07 14:46:33.800: E/V ...

  6. js 报错 :object is not a function

    object is not a function 我遇到的具体问题是:js命名方法重复了,找到了别的地方,改个方法名就可以了 var h2_price = document.getElementByI ...

  7. echarts实现上海地域PM值(map、timeline)

    <!doctype html> <html> <head> <meta charset="utf-8"> <title> ...

  8. Sencha Touch 之 Ext.ComponentManager.get方法使用

    HTML代码: <!doctype html> <html> <head> <meta charset="utf-8"> <t ...

  9. 编程策略类note

    2016-1-15 LOG LOG最重要的作用即是为程序出bug时调试提供思路, 一个自定义的log,需要有几个要素: 1. 时间,以知道哪些log是我们所需要的, 2. 标签,判断哪些log是属于哪 ...

  10. sim卡中电话本(ADN)的简要格式

    ADN的格式 ADN存放于sim卡下面3f00/7f10/6f3a,记录文件格式,其最小记录格式为14,最长为255(?),记录个数最大为255(?) 其后数14个字节是必有的,其前12个字节是电话号 ...