题目链接:Find a Way
题目不难,前几天做,当时准备写双向BFS的,后来处理细节上出了点问题,赶上点事搁置了,今天晚上重写的,没用双向,用了两次BFS搜索,和双向BFS 道理差不多,只是这题有个小坑,需要注意
1.Y不能经过M,M不能经过Y,也就是说有Y和M的格子,可以默认为是墙
2.必须是Y和M都能到达的KFC才行,只是其中一个到达不行
例如下列数据;答案既不是22 也不...
分类:
其他好文 时间:
2014-07-02 08:13:15
阅读次数:
197
单广,双广都用了,感觉双向BFS,太棒了,HDU的这个题双向BFS时间优化的太棒了
有图,有真相!...
分类:
其他好文 时间:
2014-06-30 06:32:37
阅读次数:
171
简直难到没朋友。
双向bfs + 剪枝。
剪枝策略:
对于2--5位置上的数,只有当光标在对应位置时通过swap ,up,down来改变,那么当当前位置没有达到目标状态时,left和right无意义。
好了,只剪掉这里就过掉了。。。
还有比较炫酷的方法实现枚举720种排列。。。然后状压什么的。。。功力不够完全看不懂。。。。
#include
#include
#include
#...
分类:
其他好文 时间:
2014-06-25 20:11:00
阅读次数:
162
1 /* 2 题意:国际象棋起点到终点移动的最少步数 3 4
题解:水题,BFS就过了,有人用双向BFS 5 */ 6 #include 7 #include 8 #include 9 10 using namespace
std;11 12 int dir[8][2]={-2,1,-1,...
分类:
其他好文 时间:
2014-05-09 05:34:20
阅读次数:
387
双向BFS:
分别在 起点 和 终点同时进行BFS。
一般地,BFS随着层数的增加,状态数会越来越多,也就是状态数与层数呈正相关。如下图,:
若从两端同时进行BFS ,则有
显然减少的哪一些区域即为减掉的那些不必要的状态。
#include
#include
#include
#include
#include
#include
#include
#include ...
分类:
其他好文 时间:
2014-05-08 17:16:12
阅读次数:
300
此题我用了2种方法去做,bfs和双向 bfs 现在还在学A*,准备学会了再用A*去试试,单向bfs只过了poj,双向bfs全部都过了,具体思想就是搜索加判重,有用hash,有用康托展开,不过康托展开比较方便,因为毕竟可以一一对应,就不用判重的时候还要比较9个数了,康托展开的计算方法是:从最高位开始,在它位数前面比它小的所有数的数量再乘以它(位数-1)的阶乘,再把每一位的这个值给加起来,就是要求的。...
分类:
其他好文 时间:
2014-05-03 17:25:28
阅读次数:
321
ACM 双向BFS 魔板 求助ING! HELP...
分类:
其他好文 时间:
2014-05-01 17:38:02
阅读次数:
315
ACM BFS Open the Lock hdu1195 双向BFS...
分类:
其他好文 时间:
2014-04-29 13:35:21
阅读次数:
359