题意:很好理解,然后注意几点,男的可以一秒走三步,也就是三步以内的都可以,鬼可以穿墙,但是人不可以,鬼是一次走两步 分析:我刚开始男女,鬼BFS三遍,然后最后处理答案,严重超时,然后上网看题解,发现是双向BFS 就一秒一秒走就行,男的一秒走3,女的一秒走1,然后走过的分别赋值男女标记,当走到对方的标
分类:
Web程序 时间:
2016-03-09 20:45:58
阅读次数:
171
1 #include<cstdio> 2 #include<map> 3 #include<vector> 4 #include<stack> 5 #include<iostream> 6 #include<algorithm> 7 #include<cstring> 8 #include<cmat
分类:
其他好文 时间:
2016-03-05 13:16:51
阅读次数:
161
题目大意:立体的八数码问题,一次操作是滚动一次方块,问从初始状态到目标状态的最少滚动次数。题目分析:这道题已知初始状态和目标状态,且又状态数目庞大,适宜用双向BFS。每个小方块有6种状态,整个大方格有9*6^8个状态。每个小方块用一位6进制数表示即可。注意:状态转移时要谨慎,否则会出现意想不到的错误...
分类:
其他好文 时间:
2015-10-05 20:48:32
阅读次数:
268
主题链接:Find a Way题目不难,前几天做,当时准备写双向BFS的,后来处理细节上出了点问题,赶上点事搁置了。今天晚上重写的,没用双向,用了两次BFS搜索,和双向BFS 道理差点儿相同。仅仅是这题有个小坑,须要注意1.Y不能经过M。M不能经过Y。也就是说有Y和M的格子,能够默觉得是墙2.必须是...
分类:
其他好文 时间:
2015-10-03 19:25:39
阅读次数:
262
给一个n个点m条边(2 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include 10 #include 11 #include 12 #include 13 #include 14 #in...
分类:
其他好文 时间:
2015-09-25 13:08:26
阅读次数:
193
BFS、双向BFS和A*Table of Contents1. BFS2. 双向BFS3. A*算法光说不练是无用的。我们从广为人知的POJ 2243这道题谈起:题目大意:给定一个起点和一个终点。按骑士的走法(走日字),从起点到终点的最少移动多少次watermark/2/text/aHR0cDovL...
分类:
其他好文 时间:
2015-09-13 09:23:07
阅读次数:
195
题意:如上图,给出一个初始状态,问在16步之内能否转到终态,输出路径。
思路:16太大,像这样知道初态和终态的可以使用双向bfs求解。...
分类:
其他好文 时间:
2015-08-16 19:49:12
阅读次数:
169
如果目标也已知的话,用双向BFS能很大提高速度单向时,是b^len的扩展。双向的话,2*b^(len/2) 快了很多,特别是分支因子b较大时至于实现上,网上有些做法是用两个队列,交替节点搜索×,如下面的伪代码:while(!empty()){扩展正向一个节点遇到反向已经扩展的return扩展反向一个...
分类:
其他好文 时间:
2015-07-05 10:55:14
阅读次数:
113
康拓展开?双向Bfs?
no,no,no,简单单向bfs+map判重就好,不过预处理的思想是不变的。
不过我看了许多博客,也没人解释为何12345678可以达到其他所有的状态
#include
#include
#include
using namespace std;
string st,ed;
mapmapp;
map::iterator it;
struct stu
{
s...
分类:
其他好文 时间:
2015-05-18 09:05:27
阅读次数:
127
(转)双向BFS(http://www.cppblog.com/Yuan/archive/2011/02/23/140553.aspx)如果目标也已知的话,用双向BFS能很大提高速度单向时,是b^len的扩展。双向的话,2*b^(len/2) 快了很多,特别是分支因子b较大时至于实现上,网上有些做法...
分类:
其他好文 时间:
2015-05-11 19:56:34
阅读次数:
138