![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
bfs
quinwu-
这个作者很懒,什么都没留下…
展开
-
poj 1562 Oil Deposits(搜索,种子填充法)
简单的一道搜索题,可DFS可BFS一次搜素“一块”,并把搜索过的全部标记,只要记录下调用了多少次搜索即可PASS: 题目中最后一组数据在数字后面多一个空格,我一开始用的是scanf %c读取数据,结果导致后面的char型信息全部读乱了,但不影响提交的结果。就是纠结了好长时间。。。。用cin读取时不会读取空格。scanf %s也不会读空格#include#include#include#includ原创 2013-07-15 17:35:00 · 828 阅读 · 0 评论 -
poj 2965 The Pilots Brothers(搜索)
一开始看到这个题想用BFS来做,却无从下手。在Disscuss里看到个神级code。就根据大牛的思想写下来了分析得,要改变一个位置的状态,要进行奇数次操作,某个点进行偶数次操作是不对它的状态产生影响的。对要改变状态的一点所在的行和列各个点都进行一次操作,可得到该点的状态改变而其余所有位置的点的状态都没有发生变化根据上面的结论,要更改矩阵的状态,就是要对需要变更状态的某点的行列所有点都进行一次改变操原创 2013-07-15 17:34:56 · 555 阅读 · 0 评论 -
poj 2386 Lake Counting(搜索,种子填充法)
最简单的bfs搜索,要理解bfs是对所有可能进行遍历,#include#include#includeusing namespace std;int n,m;const int Maxsize = 105;int maze[Maxsize][Maxsize];int dir[8][2]={{1,1},{1,-1},{-1,1},{-1,-1},{1,0},{-1,0},{0,-1},{0,1}};原创 2013-07-15 17:34:31 · 588 阅读 · 0 评论 -
POJ 3278 Catch That Cow(bfs+剪枝)
基本的BFS,画出解答树就知道该怎么办了,就是要注意数据量比较大, 要进行剪枝操作,不然会超时。给定两个整数n和k 通过 n+1或n-1 或n*2 这3种操作,使得n==k 输出最少的操作次数#include#includeconst int Maxsize = 200030;using namespace std;typedef struct{ int data,cnt;}node;nod原创 2013-07-15 17:34:26 · 603 阅读 · 0 评论 -
poj 1915 Knight Moves(BFS遍历)
最最基础的bfs 马儿跑啊跑。。。。。#include#include#includeusing namespace std;const int Maxsize = 305;typedef struct{ int x,y; int d;}node;int cnt;int dir[8][2] = {{2,1},{-2,1},{2,-1},{-2,-1},{1,2},{1,-2},{-1,原创 2013-07-15 17:34:33 · 531 阅读 · 0 评论 -
poj 3126 Prime Path(bfs搜索)
简单的bfs题目。 题目的意思是说告诉你两个四位数,这两个数都是素数,你能进行的操作是改变当前数字中的某一位,(第一位不为0),仍保证改变后的数是素数,问你最少经过多少次变化能将输入的第一个数变成第二个数。 为了提高效率,先打出1000-9999的素数表,按照要求进行BFS遍历即可 #include #include #include using namespace std; const i原创 2013-07-24 23:23:22 · 601 阅读 · 0 评论