ACM_BFS
文章平均质量分 67
_天道酬勤_不忘初心
这个作者很懒,什么都没留下…
展开
-
HDU 1372 Knight Moves
题目地址:点击打开链接 思路:简单BFS,可以走8个方向 AC代码: #include #include #include using namespace std; struct point { int x,y; int c; }from,to; int dx[8]={-1,-2,-2,-1,1,2,2,1}; int dy[8]={-2,-1,1,2,-2,-1,1,2}; void原创 2015-07-26 18:54:50 · 240 阅读 · 0 评论 -
HDU 1175 连连看(BFS或DFS)
题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=1175 思路:BFS或者DFS,wrong了,有时间改 错误代码: #include #include #include #include #include #include #include #include #include #include #include cons原创 2016-03-06 10:58:09 · 407 阅读 · 0 评论 -
河南第五届ACM省赛(遥 控 器)(BFS+优先队列)
题目地址:http://acm.nyist.net/JudgeOnline/problem.php?pid=543 思路:队友教的我,能想到广搜,队友用了优先队列并且用visit数组标记已经到达的频道号 AC代码: #include #include #include #include #include #include #include #include #include原创 2016-02-26 17:27:55 · 690 阅读 · 0 评论 -
POJ 3414 Pots(隐式图的遍历+记录路径)
题目地址:http://poj.org/problem?id=3414 思路:和HDU1945相似,可以看看本博客解析:http://blog.csdn.net/qq_25605637/article/details/47070597 AC代码:原创 2016-02-22 16:01:18 · 498 阅读 · 0 评论 -
POJ 3984 迷宫问题(BFS+路径输出)
题目地址:http://poj.org/problem?id=3984 思路:手动写栈,方便输出 AC代码: #include #include #include #include #include #include #include #include #include #include #include const int inf = 0x7f7f7f7f;//21原创 2016-02-22 15:26:40 · 1435 阅读 · 0 评论 -
HDU 1495 非常可乐(隐式图的遍历)
题目地址:点击打开链接 思路:用3维数组标记已走过的点,其实没有必要,因为2个杯中的水确定下来,剩下的一个点也就确定下来了,只用一个2维数组标记即可 这道题是一个一般隐式图的遍历 说到底就是搜索问题,把各种状态都走一遍,直到走到要的那种状态,用数组标记已走过的状态,如果走过就不用进队了,要是你非要进,只会浪费时间 状态转移无非6种情况 S->N S->M N->M N-原创 2015-07-26 19:50:38 · 1205 阅读 · 0 评论 -
HDU 1026 Ignatius and the Princess I(BFS+优先队列+路径记录)
题目地址:点击打开链接 题意:小明要从一个矩阵的(0,0)点到(n-1,m-1)点问最少花费多少时间到达,. : The place where Ignatius can walk on. X : The place is a trap, Ignatius should not walk on it. n : Here is a monster with n HP(1 思路:参考大神A的,原创 2015-11-03 21:57:12 · 366 阅读 · 0 评论 -
HDU 2717 Catch That Cow(BFS,每次有3种走路方式,问最少的步数到达目的地)
题目地址:点击打开链接 题意:农民要在一条线捉一头牛,假设他的坐标为x,则他有3种走路方式(1)x-1 (2)x+1 (3)2*x;问最少的步数捉到牛 思路:刚上来直接模拟也没判断,结果果断超内存,减了不少还是超,看了别人的题解,我是出来的时候判断结果T了,别人是进去的时候判断结果A了,有时间仔细研究一下,还有一个神减枝是应经走过的路标记一下,下一次走过的时候时间肯定比第一次走过的时间长,所原创 2015-11-01 18:21:31 · 520 阅读 · 0 评论 -
HDU 1195 Open the Lock(隐式图的遍历)
题目地址:点击打开链接 题意:给你一个初始的密码和最后的密码求从初始到最后所需的最少的步数,每位数字可以加1,减1,和交换,9加1位1,1减1为9,第一位只能和右边的一位交换,最后一位只能和左边的一位交换 思路:隐式图的遍历,把能走的情况全走一遍并标记下来,直到到达最终状态 AC代码: #include #include #include #include #include #i原创 2015-10-07 11:51:54 · 569 阅读 · 0 评论 -
POJ 1465 Multiple(用BFS求能组成的n的最小倍数)
题目地址:点击打开链接 题意:给一个数n,接着给m个数,用给已知的m个数组成的数最小的能被n整除的数是多少(其中m个数可以重复使用) 思路:和HDU1226有点相似,只不过比那道题简单,这里面m的数值没有说明,但是可以猜出来,问题的解空间是m^m,所以开一个大小为50的数组足够了,组成的数可以很大,必须不断取模,而且解空间太大,必须用同余减枝,假设A%N==B%N(设A AC代码: #in原创 2015-11-05 15:25:20 · 447 阅读 · 0 评论 -
ZOJ 1148 The Game
题目地址:点击打开链接 思路:感觉有点坑,(1)题目的图片没有正确显示,看我粘的图(2)输入的时候先输入的是纵坐标,后输入的是横坐标(3)每个输出块后要打印一个空行(4)本来都把打印step数组的输出给括掉了,结果输出错误,后来直接删掉就A了,和普通的BFS不太一样,和连连看差不多,要少拐弯,因为拐的越多,步数越多,要尽量沿着一个方向一直搜,为了方便理解打印了一下step数组 AC代码原创 2015-09-01 14:19:30 · 556 阅读 · 0 评论 -
HDU 1240 Asteroids!
题目地址:点击打开链接 思路:三维空间求最短路,输入输出有点蛋疼啊 AC代码: #include #include #include using namespace std; struct node { int x,y,z,step; }cf[1010]; int visit[15][15][15]; char map[15][15][15]; int n,endi,endj原创 2015-07-28 12:07:15 · 384 阅读 · 0 评论 -
HDU 1072 Nightmare
题目地址:点击打开链接 思路: 感觉还是挺难的,主要是走过的路还可以再走,刚开始直接DFS和猜的没错,死循环了, 没办法,总想验证一下想的对不?接着改,原来是要把每次走过的点记录下来,要是再次走过这个点时,距离爆炸的时间没有比原来的还短就不用走了,比原来爆炸的更快,没必要走,可以直接减枝,减了一下午没减出来,我也是服了,好那就BFS,超内存,就想走过的点没必要再走了吧,就把走过的原创 2015-07-26 19:23:47 · 357 阅读 · 0 评论 -
HDU1728 逃离迷宫
题目地址:点击打开链接 思路:用DFS容易超时,用BFS在一个方向搜到底,要多减枝 超时代码: #include using namespace std; char map[110][110]; int m,n,endi,endj,flag,k; int dir[4][2] = {{-1,0,},{1,0},{0,-1},{0,1}}; void dfs(int x,int y,int原创 2015-07-27 19:58:51 · 466 阅读 · 0 评论