
BFS
文章平均质量分 79
paradiserparadiser
中国地质大学(北京)CS专业......ACM/ICPC酱油一瓶
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Poj 3984 迷宫问题
迷宫问题Time Limit: 1000MS Memory Limit: 65536KTotal Submissions: 5099 Accepted: 2895Description定义一个二维数组: int maze[5][5] = { 0, 1, 0, 0, 0, 0, 1, 0, 1, 0,原创 2012-08-13 20:22:16 · 928 阅读 · 0 评论 -
POJ 3460 Booksort (IDA*)
只能这题的估价函数太神了.............黑书的思想一直很牛X题意:有一个 1--n的序列,顺序打乱了,目标是要让每个数字在对应的位置(1对应1.......),移动的时候取连续的一段与左边或者右边的某一段交换位置(一段也可以是一个数值)。分析:摘自黑书:本题和传统的八数码问题有类似之处,但是其启发函数不好找。如果也是把所有段落的曼哈顿距离作为估价值,则h函数是不相容的,一次移动可原创 2013-08-22 11:20:48 · 1130 阅读 · 0 评论 -
HDU 3001 Travelling (三进制状态压缩DP+BFS)
题意:有n个点(n分析:每个点最多经过两次,则用三进制保存状态,一个好的技巧就是开个pos数组,记录每个状态用三进制表示时,每一位的情况。 枚举每个点为起点,然后每次sum值是不需要清空的,清空了反而造成了诸多重复遍历....................#include #include #include #include #define INF 0x7FFFFF原创 2013-08-23 11:13:57 · 1456 阅读 · 0 评论 -
POJ 3311 Hie with the Pie (BFS+最短路+状态压缩)
题意:类似于TSP问题,只是每个点可以走多次,求回到起点的最短距离(起点为点0)。分析:状态压缩,先预处理各点之间的最短路,然后sum【i】【buff】表示在i点,状态为buff时所耗时。。。。。。。所以把10 * 1024 种状态来一遍,取sum【0】【(1只是把状态压缩DP改成bfs+状态压缩了#include #include #include #include原创 2013-08-22 23:27:46 · 872 阅读 · 0 评论 -
ZOJ 1301 The New Villa (BFS + 状态压缩)
题意:黑先生新买了一栋别墅,可是里面的电灯线路的连接是很混乱的(每个房间的开关可能控制其他房间,房间数写起来有些纠结(实力太弱)...........先对各个房间的灯进行操作,再考虑向其他房间走的问题。由于要输出路径,所以添加前驱标识,递归输出即可。#include #include #include #include using namespace std;int n,m,原创 2013-08-14 22:27:05 · 1054 阅读 · 0 评论 -
POJ 1376 Robot (BFS)
处理起来有个技巧:输入中的“1”表示真实图中黑框的左上角,所以以1为左上角,将右,下,和右下的格子置1,于是有面积的robot缩小成一个点了.................很多要注意的地方:1.转向时一秒只能转向90度,每次只能处理一秒的情况,所以一次转向180度,秒数+2是不可取的。2.起点和终点可能就在边缘或者被染成黑色..........................太恶心了原创 2013-08-15 20:28:13 · 1070 阅读 · 0 评论 -
HDU 3681 Prison Break (二分答案+状压DP+bfs预处理)
题意:机器人从F出发,走到G可以充满电,走到Y关掉开关,D不能走进,要求把所有开关关掉,且机器人存储的电量最少,并求出该最小电量。分析:把F,G,Y三种类型的点找出来,进行讨论,首先bfs处理出来各个点之间的最短路。现在题目就变成了:求一幅图中满足走遍所有Y点的条件,机器人存储的电量最少。由于点最多只有15个,状压dp来处理。二分机器人的储电量,每次用dp来做判定条件。原创 2013-08-28 19:46:21 · 931 阅读 · 0 评论 -
HDU 4166 & BNU 32715 Robot Navigation (记忆化bfs)
题意:给一个二维地图,每个点为障碍或者空地,有一个机器人有三种操作:1、向前走;2、左转90度;3、右转90度。现给定起点和终点,问到达终点最短路的条数。思路:一般的题目只是求最短路的长度,但本题还要求出相应的条数。比赛时只记录最少的步数,却没有记录以最少步数到达该点的的条数,让他们一直入队.......铁定tle.......只要记录好到达该点最少步数的条数,减少了很多重复入队...原创 2013-09-05 14:51:02 · 1187 阅读 · 0 评论 -
POJ 2697 A Board Game (bfs模拟)
比较水的一道题,在4*4的棋盘上有黑白子,现在有某种移动方式,问能否通过它将棋盘从某个状态移动到另一种状态只要想好怎么保存hash表来去重,其他就差不多了...#include #include #include #include#include #include #include #include #include #include #includ原创 2013-09-29 21:31:09 · 1571 阅读 · 0 评论 -
POJ 1077 HDU 1043 Eight (IDA*)
题意就不用再说明了吧......如此经典之前想用双向广搜、a*来写,但总觉得无力,现在用IDA*感觉其他的解法都弱爆了..............想法活跃,时间,空间消耗很小,给它跪了启发式搜索关键还是找估价函数:此题估价函数可大致定性为每个数字(除去x,只要8个数字)当前位置与它期望位置的曼哈顿距离即为:v += abs(i - pos[map[i][j] - 1][0]);原创 2013-08-21 21:21:25 · 900 阅读 · 0 评论 -
POJ 2286 The Rotation Game (IDA*)
以下部分摘自网络:IDA*算法是A*算法和迭代加深算法的结合。迭代加深算法是在dfs搜索算法的基础上逐步加深搜索的深度,它避免了广度优先搜索占用搜索空间太大的缺点,也减少了深度优先搜索的盲目性。它主要是在递归搜索函数的开头判断当前搜索的深度是否大于预定义的最大搜索深度,如果大于,就退出这一层的搜索,如果不大于,就继续进行搜索。这样最终获得的解必然是最优解。而在A原创 2013-08-21 17:29:57 · 895 阅读 · 0 评论 -
Poj 3037 Skiing
SkiingTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 3051 Accepted: 844 Special JudgeDescriptionBessie and the rest of Farmer John's cows are t原创 2012-08-23 18:41:24 · 1374 阅读 · 0 评论 -
POJ 1915 经典马步 双向bfs
拿这个经典题目开刀...........可是双向时间优势在这题上的效果不太明显#include #include #include #include #include #include #include #include #include #include #include #include //形如INT_MAX一类的#define MAX 333#define INF原创 2013-07-15 00:11:49 · 1639 阅读 · 0 评论 -
hdu 1195 Open the Lock(双向bfs)
挺好的一道题目,双向bfs的题目,也能单向bfs写。不过双向写的代码太恶心了......还是因为不熟悉题目大意:给出原密码和准确密码,对于原密码每次可以进行三个操作:1:任意一位+1 且9+1=12:任意一位-1 且1-1=93:相邻两位互换,且首位和末位不是相邻的。(密码只有四位数,每个数字1-9) 题目要求原密码变成准确密码的最少步数单向bfs:#inclu原创 2013-07-14 17:48:05 · 930 阅读 · 0 评论 -
Regionals 2012, Europe - Southwestern A.Beehives(BFS求无向图最小环)
此题不难,但是练习赛5小时内没有A掉.......最后还是因为没读清题意,多输出了一行空行简化题意就是求无向图中的最小环问题。刚开始dfs找,tle了,才发现枚举每个点,再进行整幅图的dfs找最优解必然跪。写bfs就好多了,枚举每个点,当广搜时碰到已经访问过的点并且不是它的前驱结点,此时就成环了。但不能退出广搜,必须继续搜索与之比较大小。因为最先找到的环不一定是最小的环,同一层次上的点原创 2013-07-22 00:46:12 · 2313 阅读 · 0 评论 -
HDU 1429 胜利大逃亡(续) (BFS + 状态压缩)
好好的一道题,又被我搞废了中文题目题意就不用说了。把钥匙的有无情况状态压缩:01代表有1号钥匙,10代表有2号钥匙,11代表有1号和2号钥匙...................................................................思维错在两点,弄了一上午:1. 判断点是否入队,除去最前提的条件,还有就是该点的状态是否更新了(即为是否拿了某把钥原创 2013-08-03 13:48:48 · 2967 阅读 · 0 评论 -
HDU 4414 Finding crosses (DFS + BFS)
题意:在N*N的图中,找出孤立存在的十字架的个数。十字架要求为正十字,孤立表示组成十字架的‘#的周围的一格再无’#‘。dfs找出在中心的‘#’(周围四格也为‘#'),则缩小了搜索范围,再bfs找出是否是符合要求。#include #include #include #include #include using namespace std;char map[55][55];i原创 2013-08-02 20:13:20 · 1003 阅读 · 0 评论 -
HDU 2102 A计划(三维BFS)
这题太欢乐了......虽然wa了几次,但是想到骑士在两幅图的传送门中传来传去就觉得这骑士太坑了#include #include #include #include using namespace std;int n,m,cost,head,tail,ans;char map[2][15][15];int sum[2][15][15];struct node { in原创 2013-08-02 21:17:10 · 964 阅读 · 0 评论 -
HDU 4435 charge-station (搜索+YY)
题意:有一个人要从1点出发把所有点遍历一遍并且最后能回到1点,其中每隔d距离就要加一次油,现在我们在各个点设一些加油站(1点必须设),且每隔点建加油站的费用最小为2^(i-1),求满足条件下的最小花费。分析:思考了半天也不知道按照什么顺序来搜索,现给出大神思路:突破口在于在i号点建立加油站的费用为2^(i-1),这样特殊的花费会使得我们有一个贪心的规律,就是尽量不在号比较大的点建加油站,如原创 2013-08-19 22:42:52 · 1109 阅读 · 0 评论 -
HDU 4740 The Donkey of Gui Zhou (模拟)
由于一开始考虑的很不周到,找到很多bug.....越改越长,不忍直视。 不是写模拟的料......................反正撞墙或者碰到已经走过的点就会转向,转向后还碰到这两种情况就会傻站那不动了......#include #include #include #include #include #include #include #includ原创 2013-09-15 21:00:07 · 1163 阅读 · 0 评论