ACM======搜索=======
文章平均质量分 77
沁路墨彦
泥路上的足迹,我会一直走下去。
——沁路墨彦
展开
-
CDOJ-#149 解救小Q(BFS)
题目大意: 解题思路:原创 2014-07-31 20:41:46 · 812 阅读 · 0 评论 -
HDU-#1175 连连看(DFS+剪枝)
题目大意:连连看,中文题就不解释了! 解题思路:好坑的题呀,调试了我N多个小时,怎么都不对,后边各种中间结果输出都用上了,交上去一直WA。早上过来重新写了一次,居然A了。完全不能理解呀!说下这个题吧,主要是对各个条件的剪枝上,其它都很简单。在剪枝上的分析就不具体说了,代码给了很详细的注释了,各种细节注意就行,详见code。 题目来源:http://acm.hdu.ed原创 2014-09-13 10:08:56 · 649 阅读 · 1 评论 -
HDU-#5012 Dice(BFS)
题目大意:给定两个骰子,要按照只能左右前后的翻转方式,将两个骰子摆成状态一直的顺序,问最少需要多少步? 解题思路:不知道是喜还是忧,名次上升了,哈哈哈哈,真的只有一步之遥了!心情大好,接着发下昨天的题解吧!这个题是一个搜索题,很简单的,只需要将搜索的四个方向换成四种状态。就这一点的改变,其它就不赘述了,详见code。 题目来源:http://acm.hdu.edu.cn/s原创 2014-09-15 18:32:10 · 393 阅读 · 0 评论 -
ZOJ-#3516Tree of Three(dfs+vector)
题目大意:给出一颗0为树根的树,每个结点均有一个权值,询问以结点为根的子结点中最大的三个值,若不够三个结点则返回-1. 解题思路:因为是一颗树的形态,而要求子结点中的最大的三个值。因此最直观的想法就是从树的底部开始想根节点进行更新。这样进行更新遍历一次后,对各个结点的询问就可以直接给出。相应的做法是用vector来存储各个结点的父子关系,用dfs从底部开始向上进行遍历更新整个树,原创 2014-09-24 21:28:40 · 469 阅读 · 0 评论 -
HDU-#5024 Wang Xifeng's Little Plot(DFS)
题目大意:给出一个迷宫,要求从一点到另一点过程中转弯必须是90度或者不转,次数不能超过一次的最远距离长度。 解题思路:还是补一下广州赛区的题解吧,虽然这个赛区是我们做的最不好的。不过可喜可贺的是西安赛区因为我们第一个题开始交的时候系统出问题一直没返回结果,最后重判我们那道题ac了,因此顺利晋级了,虽然还在等结果,不过已经胸有成竹了,算是给我们努力这么久一份回报吧!回到这个题来,比原创 2014-09-25 10:39:08 · 445 阅读 · 0 评论 -
HDU-#1010 Tempter of the Bone(DFS+剪枝)
这是ACM之路学习的第一个算法——搜索算法。类似的题目有(HDOJ):1010、1240、1241、1242、1072、 1253、1312、1372(以上题目类似于1010)and 1238、1239、1015、1016、1401、1515、1548等。其中,1238不仅是基本搜索算法题,也是字符串处理的经典题目(包括求反串、求子串、字符串查找、求字符串长度),1239是数值型搜索题。而最经典的原创 2014-03-31 08:26:43 · 568 阅读 · 0 评论 -
Search Algorithm-搜索入门专题
即将开始第二个阶段了,还是先总结下吧! 一个暑假的集训下来,我们队算是知道了绝大部分算法的吧,至少不会像之间根本不知道该怎么去做?但是这仅仅是知道了,虽然一个暑假都没有间隙地训练着,但时间对我们来说还是太短了。特别是对于我,真不知道这样的抉择是对还是错,真的好迷茫,站在这个即将离去的路口,我还在追寻着这个本该早就该开始的梦。不过现在依然固执地追寻着吧,至少自己认为大学必须要有这样原创 2014-09-11 10:12:31 · 667 阅读 · 0 评论 -
Search Algorithm-搜索提高专题
接着上一个入门专题,可以对基本的DFS和BFS有一个很好的认识和应用。下面在基础之上对搜索专题进行提高篇进行总结。 搜索专题,除了基础的DFS、BFS的应用,还有很多交叉以及深入的专题。众所周知,DFS和BFS除了功能上的差异,还有就是在时间和空间复杂度的侧重点不同,DFS时间复杂度要高一些,BFS空间复杂度要高一些。有利就有弊,针对这些特点有着不少的优化版本。主要包括:双向BF原创 2014-09-11 10:48:15 · 554 阅读 · 0 评论 -
codeforces-#476B. Dreamoon and WiFi(dfs、二进制枚举)
题目大意:给出两个字符串,一个是由“+“或”-“构成。第二个由于“+”、“-”、“?”构成,第二个字符串中的“?”可能是“+“或”-“。组成的字符串“+“的权值为1,”-“的权值为-1.问组成的权值和与第一个相等的概率是多少? 解题思路:第一个权值和知道,第二个知道部分,“?”可能是“+“或”-“两种情况,就想到用二进制枚举来推,推了下用例是对的,就敲了,可是到现在也没找到在那原创 2014-10-13 15:12:47 · 746 阅读 · 0 评论 -
HDU-#4474 Yet Another Multiple Problem(BFS)
题目大意:给出一个数n,求n以及倍数里,不存在给出的m个[0,9]的数的最小数是多少? 解题思路:最近都不知怎么了,各种烦心事,各种不顺心,做题找不到感觉,感觉东西太多,又想抓住全部却什么也抓不到。就连自己最熟悉的搜索,居然都写不出来了,自己到底怎么了!唉......这个题直接暴力会超时的,虽然数只有1e4,但是倍数最终到达多少都不确定的,所以用进行搜索+剪枝处理。用一个数组标记不原创 2014-10-04 19:20:34 · 502 阅读 · 0 评论 -
HDU-#5025 Saving Tang Monk(BFS+状态压缩)
题目大意:给出一个迷宫,其中起点为K,终点为T,而S为蛇,第一次经过会多消耗1个时间来杀死蛇,还有一些数字的钥匙,必须依次收集,即拿了钥匙1,才能拿钥匙2.问最低消费时间为多少步? 解题思路:求最短的时间的花费,很明显是BFS来求解。但是由于要判断钥匙以及蛇的状态,这里采用状态压缩来进行状态的存储。code给出了详细的注释,理解了状态压缩,题就很简单了。详见长code。原创 2014-10-14 21:25:35 · 452 阅读 · 0 评论 -
HDU-#4460 Friend Chains(bfs)
题目大意:给出n个人以及m种朋友关系,求一个系数k,使得任意两人的关系长度不会超过k。 解题思路:最容易想到的是Floyd算法,求出每两人之间的的距离,然后更新最长关系值。但在这样O(N^3)会超时,这里可以用bfs去跑出所有点的距离,然后再判断。也可利用SPFA算法进行求解,这与bfs的写法相差不大。不过还有大神用了字典树来写,实在是高呀。这里给出前两种的code。原创 2014-10-20 21:52:35 · 518 阅读 · 0 评论 -
HDU-#1026 Ignatius and the Princess I(BFS+优先队列+路径存储)
题目大意:给一个迷宫,需要从左上角走到右下角,某些格子会有一些数字,经过的时候会增加相应数字对应的时间,求最短时间以及整个过程的路径输出。 解题思路:这个题纠结了好久呀,题不难,主要是路径的输出上太麻烦了,始终都调试不对。后边看了下大牛的题解,然后才A了。这个题直接就是简单的BFS,只不过要求路径输出,因此中间要用结构体记录路径。这里用一个二维的结构体记录对应点的前去结点以及该点所需原创 2014-09-12 09:20:54 · 374 阅读 · 0 评论 -
HDU-#1312 Red and Black(DFS)
题目大意:给出一个矩形红地板和黑地板的分布情况,问最多能走多少块黑地板,不能走和跨过红地板。 解题思路:直接就是DFS,三天不写手生呀,一个getchar弄了我半天。还是比较简单的,就不赘述了,详见code。 题目来源:http://acm.hdu.edu.cn/showproblem.php?pid=1312 code: #include #inc原创 2014-09-11 15:52:16 · 350 阅读 · 0 评论 -
Search Algorithm-搜索进阶专题
如果对搜索的提高阶段有了很好的训练,那么下一个阶段就是进阶了,知识的最大应用就是结合与其他知识领域进行交叉应用。这里也是如此,通过前面单一的搜索专题训练,该专题就是结合其他算法进行综合训练,这应该是搜索的较深入的学习了,也是算法应用最多,最能想到、最优效果的优化。 【jinj】 这里先对该专题进行说明,方便后边总结用,持续更新中......原创 2014-09-11 10:53:10 · 426 阅读 · 0 评论 -
CDOJ-#851 方老师与素数(BFS)
题目大意:原创 2014-08-03 11:06:25 · 636 阅读 · 0 评论 -
HDU-#1072 Nightmare(BFS)
题目大意: 解题思路: 题目来源: code:原创 2014-07-23 17:00:54 · 393 阅读 · 0 评论 -
HDU-#1253 胜利大逃亡(BFS+优化)
题目大意:原创 2014-07-23 10:03:25 · 519 阅读 · 0 评论 -
HDU-#1016 Prime Ring Problem(DFS+回溯)
题目大意:输入一个n,shu原创 2014-07-21 19:29:07 · 393 阅读 · 0 评论 -
HDU-#1372 Knight Moves(双向BFS)
题目大意:在一个8*8的qipuanzhong原创 2014-07-24 23:24:47 · 419 阅读 · 0 评论 -
HDU/CDOJ-#4394/850 Digital Square/方老师开橙卡(BFS+优先队列)
题目大意: 解题思路: 题目来源: code:原创 2014-08-01 09:53:15 · 1138 阅读 · 0 评论 -
HDU-#1242 Rescue(BFS)
题目大意: 解题思路: 题目来源: code:原创 2014-07-22 22:09:29 · 537 阅读 · 0 评论 -
ZOJ-#3631 Watashi's BG(DFS+剪枝)
题目大意:给出n天每天吃饭的花费以及总共的奖金数,问怎样去花费能够尽量接近或者等于奖金,但不能超过。 解题思路:想了很久都没有想到,想到了01背包,但是发现存不下来,会T。因此要用dfs+剪枝来写。就剪枝来说,主要有几个方面:一是满足条件则返回;二是每次都更新最优值;三是花费和已经超过奖金数,则返回;四是下标超过则返回;五是加当前的值小于奖金,则下标和值下移,否则回溯。具体在注释已经给原创 2014-09-18 08:56:42 · 520 阅读 · 0 评论 -
HDU-#1240 Asteroids!(BFS)
题目大意: 解题思路: 题目来源:原创 2014-07-22 15:28:00 · 383 阅读 · 0 评论 -
HDU-#1560 DNA sequence(迭代加深搜)
题目大意: 解题思路:原创 2014-07-26 11:05:38 · 576 阅读 · 0 评论 -
HDU-#1241 Oil Deposits(BFS & DFS)
题目大意:原创 2014-07-22 18:55:45 · 396 阅读 · 0 评论 -
HDU-#4771 Stealing Harry Potter's Precious(bfs+状态压缩)
题目大意:给出k个宝物的坐标,从起点开始依次到达所有宝物的点取走宝物的最短时间。 解题思路:由于走过的点还可以走,并且要求取走所有的最短时间,因此利用bfs去搜索最短的步骤,用状态压缩来记录走过的状态,每次更新取走所有的花费。详见code。 题目来源:http://acm.hdu.edu.cn/showproblem.php?pid=4771原创 2014-10-21 12:17:26 · 495 阅读 · 0 评论