----【图论】
文章平均质量分 81
lamborghini1993
这个作者很懒,什么都没留下…
展开
-
HDU 1175 连连看
题目地址: http://acm.hdu.edu.cn/showproblem.php?pid=1175 广搜 BFS主要问题是怎样记录拐弯次数,用方向标记,比较上一次路线方向和当前路线方向,如不同拐弯次数+1,相同拐弯次数不变。这里用到一个小技巧,初始化 visit 很大,当前拐弯次数小于 visit 时,才将当前拐弯次数赋值给 visit ,然后push。 代码如原创 2013-01-27 14:24:01 · 811 阅读 · 0 评论 -
HDU 4277 USACO ORZ 搜索
题目地址 : http://acm.hdu.edu.cn/showproblem.php?pid=4277题意:给你n段线段,问你全部用完这n的线段能组成多少种不同的三角形思路:深搜dfs+map判重AC代码:#include #include #include #include #include #include #include #include原创 2013-07-25 17:17:29 · 1024 阅读 · 0 评论 -
HDU 4444 Walk (离散化建图+BFS+记忆化搜索) 绝对经典
题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=4444题意:给你一些n个矩形,给你一个起点,一个终点,要你求从起点到终点最少需要转多少个弯题解:因为矩形数量很少50个,可以离散化成102*102的坐标,但是人可以贴着墙壁走,但不能穿过墙壁所以每个点要分成9等分。建筑物的边占1/3,但是这样有漏洞。1、当两个墙壁贴在一起原创 2013-08-06 17:28:33 · 1508 阅读 · 0 评论 -
POJ 2286/HDU 1667 The Rotation Game 搜索-IDA*+迭代加深
题目地址:http://poj.org/problem?id=2286本题若用广搜,空间需求量非常大,空间不足。深搜的话,深度很难控制,容易陷入死循环。在这个时候就要用到迭代加深的深搜方法。所谓迭代加深,就是在深度无上限的情况下,先预估一个深度(尽量小)进行搜索,如果没有找到解,再逐步放大深度搜索。这种方法虽然会导致重复的遍历 某些结点,但是由于搜索的复杂度是呈指数级别增加原创 2013-07-06 11:06:40 · 1558 阅读 · 0 评论 -
HDU 1226 超级密码 (搜素)
题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=1226题意简单,本来是一道很简单的搜素题目。但是有两个bug:1、M个整数可能有重复的。2、N可能为0。你说这两个bug有意思么,特别是第二个,真没意思。AC代码::#include #include #include #include #includ原创 2013-08-26 17:01:43 · 1298 阅读 · 0 评论 -
HDU 1104 Remainder (BFS)
题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=1104题意:给你一个n、m、k,有四种操作n+m,n-m,n*m,n%m,问你最少经过多少步,使得最后的结果=(初始n+1)%k题解:很明显的BFS,然后我就很快写,果断RE,发现里面可能有负数,改了之后还是错了,看了discuss才发现原来要%mk,现在还是不是很懂为什么,这里disc原创 2013-08-26 15:29:20 · 1208 阅读 · 0 评论 -
HDU 1430 魔板 (双向BFS)/(BFS预处理)+map判重
题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=1430题意:给你两串字符串,有三种操作,让你从第一个变到第二个最小需要的变换步数。题解:这道题如果每个直接用BFS搜素的话会超时,要么用双向BFS,要么用BFS预处理好,然后直接输出路径即可,但是这里有个技巧,就是开始的字符串不一定是前面搜素的,所以我们可以将两个字符串变换成他们的相对位原创 2013-08-26 20:25:24 · 1368 阅读 · 2 评论 -
HDU 4090 GemAnd Prince (DFS+BFS)/(DFS+DFS)
传送门:http://acm.hdu.edu.cn/showproblem.php?pid=4090题意:相信大家都玩过消消看,连在一起大于等于3个相同的颜色就可以消去了,这道题目还加了另外的一个条件,每次消完了之后都会下落然后左移,问你最多能得多少分。题解:开始的时候我的第一想法是BFS+DFS,然后果、果断MLE,最后看了别人的代码,基本上是DFS+DFS或者DFS+BFS,哎原创 2013-08-28 09:23:44 · 1469 阅读 · 1 评论 -
HDU 3681 Prison Break (搜索+状压dp)
传送门:http://acm.hdu.edu.cn/showproblem.php?pid=3681题意:一个机器人想越狱,他只能带一定电量的电池,'S'表示道路可行,'G'表示充电器,只可充电一次,但是可以经过很多次。'F'表示起点,'Y'表示要破坏的机关,也是只能破坏一次,但是可以经过无数次。'D'表示不能经过的地点。求他能破坏所有机关,带的最小初始电量。题解:一看原创 2013-10-03 14:55:52 · 1631 阅读 · 0 评论 -
HDU 4751 Divide Groups (BFS)
传送门:http://acm.hdu.edu.cn/showproblem.php?pid=4751 题意:给你一个有向图,问你能不能把这个有向图分成两个完全有向图(可以为空,可以有一个点)题解:用两个集合来表示着两个完全图,当推出矛盾的时候就输出NO。 AC代码:#include #include #include #include #include #incl原创 2013-09-22 12:57:27 · 1331 阅读 · 0 评论 -
HDU 4753 Fishhead’s Little Game (博弈+记忆话搜索)
传送门:http://acm.hdu.edu.cn/showproblem.php?pid=4753 题意:给你一个4*4的格子16个点,两个人博弈,每次可以添加一条边,当添加一条边后围成1*1的正方形时就加一分,现在已经给你n个回合,问你到最后谁将得的分最高(两个人都是很聪明,每一步都是最优的)。题解:因为12dp[i]表示,S中放了边的状态为i的情况下,先走还能获得的最大分数。原创 2013-09-22 16:37:08 · 893 阅读 · 0 评论 -
HDU 4127 Flood-it! (IDA*+BFS)
传送门:http://acm.hdu.edu.cn/showproblem.php?pid=4127 题意:给你一个n*n的格子,每个格子里面有一个数字(0到5),问你每次可以改变与(1,1)相连的相同数字 变成任意其他数字,问你最少多少步能全部变成同一个数字。题解:因为数据量有点大,宽搜会爆,深搜不知道尽头,所以用IDA*(迭代加深),BFS搜索与(1,1)相同的数字。注意点细节原创 2013-09-25 10:17:29 · 980 阅读 · 0 评论 -
HDU 1813 Escape from Tetris (IDA*)
传送门:http://acm.hdu.edu.cn/showproblem.php?pid=1813 题意:给你一个n*n的迷宫,其中0代表有一个人在这个位置,1代表墙,现在要求一个路线,使所有的人通过这个路线都可以走到迷宫的边界注意当到达边界就相当于出去了不用继续走了,一个格子可以容纳很多人。题解:先用BFS求出迷宫内部的点走到边界的最小步数(为了后面的IDA*剪枝),因为有很多原创 2013-09-26 11:01:02 · 894 阅读 · 0 评论 -
HDU 4527 小明系列故事——玩转十滴水 2013腾讯编程马拉松初赛第五场第二题
题目地址: http://acm.hdu.edu.cn/showproblem.php?pid=4527 这个和我们玩的3366游戏十滴水差不多,规则就是当水滴大于4的时候会爆裂像4个方向各传递一滴水。有一点要注意的是,水滴的速度是相同的,所以可能有大于等于2滴水滴同时到达某一地方。 代码如下:#include #include #include #incl原创 2013-03-26 22:53:43 · 1433 阅读 · 0 评论 -
HDU 4474 Yet Another Multiple Problem 搜索——BFS
题目地址: http://acm.hdu.edu.cn/showproblem.php?pid=4474解题过程中各种错误啊~~~AC代码:#include #include #include #include #include #include #include #include #include #include #include #inc原创 2013-07-22 17:30:30 · 1019 阅读 · 0 评论 -
HDU 2181 哈密顿绕行世界问题
题目地址 :http://acm.hdu.edu.cn/showproblem.php?pid=2181哈密顿绕行世界问题Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 0 Accepted Submission(s)原创 2012-11-17 19:46:22 · 1055 阅读 · 0 评论 -
HDU 1242 Rescue
题目地址: http://acm.hdu.edu.cn/showproblem.php?pid=1242 题意简单,Angel要救他的朋友,"." 代表道路,,"a" 代表Angel,"r" 代表Angel的朋友,"x"代表敌人,每走一步需要一秒钟,杀死一个敌人需要一秒钟,问Angel最少多少秒能救他的朋友。 简单广搜 BFS,当然DFS也行,不过一般有个结论:问最少多少秒到原创 2013-01-28 15:18:30 · 736 阅读 · 0 评论 -
HDU 1372 Knight Moves
题目地址: http://acm.hdu.edu.cn/showproblem.php?pid=1372这道题目是关于中国象棋的,问中国象棋里面马从一个地方跳到另一个地方最少需要多少步。我们知道在正常范围内,马可以向8个方向跳。简单搜索,BFS题目代码:(代码每一步很清楚)#include #include #include #include #原创 2013-02-01 22:35:38 · 529 阅读 · 0 评论 -
HDU 1495 非常可乐
题目地址: http://acm.hdu.edu.cn/showproblem.php?pid=1495 中文题目就不用我解释题意了,直接上代码,代码里面写的很清楚。关键解决问题是怎样倒,有三个瓶子,所以有6种倒发,每次倒的时候要判断是否能倒满。简单BFS、 代码如下:#include #include #include #include #include原创 2013-02-02 11:18:15 · 892 阅读 · 0 评论 -
HDU 2553 N皇后问题 深搜-dfs
题目地址: http://acm.hdu.edu.cn/showproblem.php?pid=2553 N皇后问题是搜索中的经典问题,在N*N的棋盘上放N个皇后,使得每行每列每条对角线上没有两个棋子。代码里面有详细注释,直接上代码。 代码如下:#include #include #include #include #include #include #i原创 2013-02-02 18:11:53 · 814 阅读 · 0 评论 -
HDU 1010 Tempter of the Bone 深搜-dfs
题目地址: http://acm.hdu.edu.cn/showproblem.php?pid=1010 题意:判断从S能否在第T秒到达D点,能输出YES,不能输出NO。我首先拿到这道题目的时候,最先想到的是A*算法,可是WA了,大家要注意,题目说的是在第T秒到达D点,所以不能用A*算法再看数据范围,最大7*7,直接爆搜,果断超时了,只能剪枝:1、可走点2、T小于S到D原创 2013-02-02 14:29:08 · 527 阅读 · 0 评论 -
HDU 1175 连连看
#include #include #include #include #include #include #include #include #include #include #include using namespace std;/*freopen("input.txt","r",stdin);freopen("output.txt","w",stdout);原创 2013-04-13 17:22:36 · 650 阅读 · 0 评论 -
HDU 1195 Open the Lock 简单搜索-bfs
题目地址: http://acm.hdu.edu.cn/showproblem.php?pid=1195 一个标准的宽搜,一点不需要剪枝需要注意的一点是:交换的时候,这个地方只能交换邻居,我当时看错以为可以任意交换 代码如下:#include #include using namespace std;int a[5],b[5];bool vis原创 2013-04-30 07:56:29 · 1229 阅读 · 0 评论 -
POJ 1475 Pushing Boxes 搜索- 两重BFS
题目地址: http://poj.org/problem?id=1475两重BFS就行了,第一重是搜索箱子,第二重搜索人能不能到达推箱子的地方。AC代码:#include #include #include #include #include #include #include #include #include #include #include原创 2013-07-05 17:27:48 · 1129 阅读 · 0 评论 -
POJ 2046 Gap 搜索- 状态压缩
题目地址: http://poj.org/problem?id=2046一道搜索状态压缩的题目,关键是怎样hash。AC代码:#include #include #include #include #include #include #include #include #include #include #include #include #in原创 2013-07-06 21:07:45 · 1391 阅读 · 0 评论 -
POJ 1924 The Treasure 搜索
题目地址:http://poj.org/problem?id=1924在N*M的的地图中,有p个怪物,a表示可以攻击周围的怪物,n表示只能攻击当前位置的怪物。给你每个怪物nge位置,然后每一秒移动到下一个位置,重复移动。问你最少在100步以内能不能找到宝物。开始的时候看错了p,第一眼就得是大写,然后一直不能达到,结果复制粘贴才知道是小写,哎……然后就是在状态里面原创 2013-07-08 11:05:18 · 1489 阅读 · 0 评论 -
POJ 1324 Holedox Moving 搜索
题目地址: http://poj.org/problem?id=1324优先队列---A*的估价函数不能为蛇头到(1,1)的距离,这样会出错。超时代码:#include #include #include #include #include #include #include #include #include #include #include原创 2013-07-05 16:14:36 · 1033 阅读 · 0 评论 -
HDU 2485 Destroying the bus stations (IDA*+ BFS)
传送门:http://acm.hdu.edu.cn/showproblem.php?pid=2485题意:给你n个点,m条相连的边,问你最少去掉几个点使从1到n最小路径>=k,其中不能去掉1,n两个点。题解:这个题目可以用最小流解决,也可以用IDA* + BFS解决。AC代码:#include #include #include #include #原创 2013-09-29 20:18:16 · 1081 阅读 · 0 评论