Algorithm-搜索
文章平均质量分 72
xiaozhuaixifu
这个作者很懒,什么都没留下…
展开
-
HDOJ-1238 Substrings!
先对字符串进行排序,直接枚举长度最短的串的子串,再判断是否是其余字符串的公共子串即可。#include #include #include #include #include #include #include #include #include using namespace std;bool cmp(string a,string b){ return a.size(原创 2013-05-23 00:00:29 · 722 阅读 · 0 评论 -
HDU/HDOJ 2563 统计问题 回溯发DFS
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2563深搜回溯超时,于是可耻的打了个表,0MS AC了。。#include#include#include#includeusing namespace std;int ans[21]={0,3,7,17,41,99,239,577,1393,3363,8119,19601,47321原创 2013-06-11 14:25:23 · 1770 阅读 · 0 评论 -
HDU/HDOJ 1254 推箱子 嵌套的广度优先搜索
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1254思路:首先要判断人是否能到达箱子所前进的地方的反方向,用第一个bfs1,再判断箱子是否能到达目标点,这是主bfs,箱子每走一步都要调用bfs1,箱子可以从四个方向被推走,开三维数组表示 每个点的四个方向的状态标记,因为可以从上往下腿,也可以从下推回原地,所以二维标记不足以满足。AC代码:0原创 2013-06-03 09:10:47 · 1497 阅读 · 0 评论 -
HDOJ/HDU 2553 N皇后问题 回溯加递归
回溯法(探索与回溯法)是一种选优搜索法,按选优条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择,这种走不通就退回再走的技术为回溯法,而满足回溯条件的某个状态的点称为“回溯点”。基本思想: 在包含问题的所有解的解空间树中,按照深度优先搜索的策略,从根结点出发深度探索解空间树。当探索到某一结点时,要先判断该结点是否包含问题的解,如果包含,就转载 2013-06-11 13:33:42 · 942 阅读 · 0 评论 -
HDU/HDOJ 1312 Red and Black 非常简单的搜索题 BFS
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1312题目很好懂,只搜索能到达的地方,统计数量,啥也不做。很坑爹的地方是,行列输入是反的!AC代码:31MS 364K,空间还可以优化,直接不用开visit数组,直接把访问后的点置为障碍即可。#include #include #include #include #include原创 2013-06-03 13:37:29 · 1614 阅读 · 0 评论 -
HDU/HDOJ 1372 Knight Moves(骑士游走问题) 简单广度优先搜索
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1372思路:8个方向依次入队即可,只需标记访问,广度优先搜索是按照层次来搜索,如果存在一条通路,那么自然是最短路了。AC代码:62MS 352K,还可以优化。#include#include#include#include#include using namespace std;原创 2013-06-03 22:58:08 · 1628 阅读 · 0 评论 -
HDU/HDOJ 1548 A strange lift BFS,DFS
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1548我用两种方法做,DFS没有AC,不知道错在哪里,贴出来有大神撸过不吝赐教,第二种经典方法BFS过了,76MS 360k,思路都很简单,也是一道很规范的广度优先搜索。代码:BFS:#include #include using namespace std;int n,a原创 2013-06-04 14:33:51 · 1349 阅读 · 2 评论 -
HDU/HDOJ 1677 Nested Dolls 搜索
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1677类似于求最长下降子序列的个数,此题可以用动态规划来解,不过我用简单的搜素来做,可惜超时,先上代码再优化。#include #include #include #include #include using namespace std;struct node{ int w,h;原创 2013-06-06 00:19:37 · 1743 阅读 · 0 评论 -
HDU/HDOJ 1800 Flying to the Mars 搜索
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1800其实就是求单调最长不降子序列的个数,这题有很多方法,有用map的,有字典树的,我的方法很简单,标记搜索,提交不要选g++,会被卡超时,选c++即可。#include#include#include#include#include#includeusing namespace std原创 2013-06-07 14:32:47 · 880 阅读 · 0 评论 -
HDOJ/HDU 1728 逃离迷宫 DFS 深度优先搜素
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1728深搜思路:记录4个方向和拐弯次数,若拐弯3次,则必须是当前点和终点在一条直线才满足要求,否则剪掉,这样也超时,坑爹,之前连连看那个题就是用这种方法也能过,z这次的数据有点强,100*100了,所以深搜不行,不过这思路倒不错。代码:#include #include #inclu原创 2013-06-06 23:50:58 · 1857 阅读 · 0 评论 -
HDU/HDOJ 2612 Find a way 双向BFS
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2612思路:从两个起点出发,有多个终点,求从两个起点同时能到达的终点具有的最小时间,开两个数组分别保存两个起点到达每一个终点的用时,最后将两个数组里的时间加起来求最小的一组,必须对应相加,因为终点必须同时到达。#include #include #include #include #原创 2013-06-19 13:42:18 · 1148 阅读 · 0 评论 -
HDOJ 1800 Flying to the Mars 盲目搜索......................so easy...........
check the original problem here:http://acm.hdu.edu.cn/showproblem.php?pid=1800the AC code:#include#include#include#include#include#includeusing namespace std;int level[3010];bool visit[301原创 2013-06-19 14:20:11 · 814 阅读 · 0 评论 -
HDOJ/HDU 2717 Catch That Cow 一维广度优先搜索 so easy..............
看题:http://acm.hdu.edu.cn/showproblem.php?pid=2717思路:相当于每次有三个方向,加1,减1,乘2,要注意边界条件,减1不能小于0,乘2不能超过最大值。然后还要注意N>=K的时候,只能减1才能到达。#include #include #include #include #include #include #include #in原创 2013-06-22 20:57:47 · 1069 阅读 · 0 评论 -
POJ---2243 Knight Moves 使用A*算法的广度优先搜索
一个简单的A星算法实例。原创 2013-07-02 14:09:38 · 1295 阅读 · 0 评论 -
poj 1979 Red and Black ---DFS
http://poj.org/problem?id=1979很水。#include #include #include using namespace std;const int maxn=25;char maze[maxn][maxn];int ans,N,M,sx,sy;int dir[4][2]={-1,0,1,0,0,-1,0,1};void dfs(int x,int原创 2013-08-27 21:21:09 · 1357 阅读 · 0 评论 -
庞果网 在线编程 24点游戏
“24点游戏是一种使用扑克牌来进行的益智类游戏,游戏内容是:从一副扑克牌中抽去大小王剩下52张,任意抽取4张牌,把牌面上的数(A代表1)运用加、减、乘、除和括号进行运算得出24。每张牌都必须使用一次,但不能重复使用。 有些组合有不同种算法,例如要用2,4,6,12四张牌组合成24点,可以有如下几种组合方法: 2 + 4 + 6 + 12 = 24 4 × 6 ÷ 2 + 12 = 24 1原创 2013-06-01 13:43:04 · 2231 阅读 · 3 评论 -
HDU/HDOJ 1253 胜利大逃亡 广度优先搜索算法 迷宫寻路
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1253思路:从两维扩展到了三维,使用了三维数组,关于三维数组的理解,可以自己去google,无非就是从平面扩展到了空间,方向也成了6个,前,后,左,右,上,下,其他的都不变,注意一下坑爹的边缘数据就可以了。#include #include #include #include #incl原创 2013-06-02 12:39:31 · 1517 阅读 · 1 评论 -
完美之星编程大赛 复赛第二场 24点
题目描述:描述: 两人用一副扑克(王牌除去)玩24点,规则是这样的:两人各出2张牌,谁先算出来谁赢,赢家收回已经算过的4张牌,最后看谁手里的牌多。四张牌分别用4个扑克牌面字符表示。A,1,2,3,4,5,6,7,8,9,10,J,Q,K 分别代表数字1,2,3,4,5,6,7,8,9,10,11,12,13。其中每张牌只能使用一次;任意使用 +, –, *, /, ( ) ,构造出一个表达式,原创 2013-06-01 13:18:33 · 1246 阅读 · 0 评论 -
HDOJ 1239
a.给定整数m,a,b(4 1 b.需要找到两个数(不妨设为p,q)满足以下条件: p,q均为质数; p*q a/b c.输出所有满足以上条件的p,q中乘积最大的一对p,q;题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1239#include #include #include #in原创 2013-05-23 14:26:32 · 676 阅读 · 0 评论 -
HDOJ 1010 迷宫搜索 剪枝
题目信息:典型的迷宫搜索,熟练掌握该题将具有里程碑式的意义!每个block只能走一次要求恰好某个给定的时间到达口思路:才用深度优先搜索,这里要注意剪枝,不然会超时,剪枝1:如果可以走的步数小于时间数,则不论怎么走都无法到达。剪枝2:奇偶剪枝,如果时间数和{S(出发点)和D(出口)相差的步数}的差是一个奇数,即:若时间数为奇数,相差步数为偶数,差为奇数,这种情况无转载 2013-05-23 20:02:11 · 846 阅读 · 0 评论 -
HDOJ 1015 Safecracker
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1015DFS确定搜索变量为5个参数,然后进行深度优先搜索,并在深度为5时终止搜索,判断状态。预排序是为了获得字典序大的组合,判重。#include #include #include #include #include #include #include #incl转载 2013-05-24 14:33:23 · 839 阅读 · 0 评论 -
HDOJ 1016 Prime Ring Problem!!
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=10161-n的正整数,每个元素构成一个环,要求前后相邻的元素之和为素数,且第一个元素始终为1,如果有多个满足的情况,按照字典序输出每组序列。思路:深度优先搜索,边搜索边判断,当深度为n时,输出暂存数组里面的元素,即为符合的答案,从2到n开始遍历,能满足字典序从小到大。AC代码:#incl原创 2013-05-24 23:00:21 · 779 阅读 · 0 评论 -
HDOJ 1026 Ignatius and the Princess I 搜索最短路径
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1026最短很好解决,设置两个全局变量就可以搞定,每次到达出口时比较所用时间,但是记录最短路径比较复杂,目前还没有实现。题目中涉及到的边界剪枝,障碍剪枝就不多说了,还是深度优先,先上代码,下次有时间再优化:#include #include #include #include #i原创 2013-05-26 14:29:34 · 1053 阅读 · 0 评论 -
完美未来之星 复赛第二场 迷宫(DFS)
迷宫 返回比赛首页题目描述有一个m*n格的迷宫(表示有m行、n列),其中有可走的也有不可走的,如果用>0表示可以走以及能量的数量,0表示不可以走,每通过1个格子可以收集格子所对应的能量。但是不可以重复走以前走过的格子且只能从左上角到最右下角。怎么样收集的能量才能最多.输入格式第一行输入1个整数 0 下面两行分别输入2个整数 3 接下来的M行输入 N个数字, 每个数字 0原创 2013-05-28 16:55:55 · 744 阅读 · 0 评论 -
HDOJ/HDU 1072 Nightmare (bfs)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1072从入口到出口的最短路,4这个点要重置时间,不运行重复走,其他个点可以重复走,其中0是障碍,先前自己用深度优先不好搞,再借鉴了网上一个大牛的转自:http://blog.csdn.net/yyf573462811/article/details/7819226#include #i转载 2013-05-28 19:46:23 · 646 阅读 · 0 评论 -
HDOJ 1175 连连看 DFS BFS
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1175思路:在DFS里增加dir,turn,分别表示方向,拐弯次数,如果turn超过2次则必须返回,DFS必须剪枝,否则超时,下面代码:593MS 3348K先上DFS的代码:#include #include #include #include #include #inclu转载 2013-05-29 17:22:13 · 887 阅读 · 0 评论 -
HDOJ 1180 诡异的楼梯 DFS
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1180用DFS很容易超时,尽管题中已经考虑了剪枝,还是超了 1000MS,这题有BFS的高效解法,不过感觉时间限制太小了,1000MS就超了,上次做的题,用BFS 2000MS还能AC啊,先上代码,思路:重点考虑到达楼梯周围四个点时候的楼梯方向和四个位置,依次枚举。#include #原创 2013-05-30 14:14:11 · 1126 阅读 · 0 评论 -
HDOJ 1181 变形课 DFS
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1181AC 781MS 476K,思路非常简单的一个搜索题,深搜很简单,题目意思有点不明确,即单词必须首尾相连此外还必须注意,若单词里面有多个b开头的单词,必须依次搜索,当然如果已经找到了符合的答案就可以break了,放在一个队列里,模拟dfs就可以了AC代码:#include #in原创 2013-05-31 09:12:09 · 907 阅读 · 0 评论 -
HDU/HDOJ 1241 Oil Deposits (DFS)深度优先搜索
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1241题意:相当于求图中连通子图的个数,这里的连通按照题意要求为 八邻域连通(上,下,左,右,四个对角)思路:深度优先,依次搜索图中每个点的八邻域,并注意标记访问,不然后果很严重.AC 代码:46MS 416K 速度不慢,可能对于图中障碍比较多的缘故。#include #include原创 2013-05-31 13:56:03 · 765 阅读 · 0 评论 -
HDU/HDOJ 1242 Rescue 典型的迷宫广度优先搜索题
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1242题目大意:在含有障碍的迷宫中求从一点到一点的最短时间或步数,这个题目有个坑爹的地方,天使的朋友不止一个,所以搜索的起点应该是从天使开始搜到朋友为止,最短路,还有一个坑爹的地方,题目求的是最短时间,不是最短步数,所以应该才用优先队列,小步数优先,结果我两种方法都试过,都能AC;上代码:187原创 2013-05-31 19:22:18 · 1132 阅读 · 0 评论 -
HDU/HDOJ 2102 A计划 广度优先搜索BFS
题目:http://acm.hdu.edu.cn/showproblem.php?pid=2102wa了很多次,很悲剧,传送门有几个需要注意的细节,看remap函数,对这些情况的处理。#include#include#include#include#include#include#include#includeusing namespace std;int n,m,t,f原创 2013-06-09 15:44:02 · 1081 阅读 · 0 评论 -
HDOJ/HDU 2141 Can you find it? 二分搜索优化
题目:http://acm.hdu.edu.cn/showproblem.php?pid=2141直接三重循环肯定超时了啊,O(n^3)是不允许的,现在把前两个数组加起来的每种情况保存,再用X-C[i]的值去做二分搜索,这样可以把复杂度降低到O(n^2+nlogn)就可以AC了,不过做二分搜索的时候一定要注意边界情况,不然会WA很多次,尼玛的!!#include#include#inc原创 2013-06-09 19:30:16 · 1407 阅读 · 0 评论 -
poj 3009 Curling 2.0 DFS
DescriptionOn Planet MM-21, after their Olympic games this year, curling is getting popular. But the rules are somewhat different from ours. The game is played on an ice game board on which a squa原创 2013-08-29 13:21:53 · 1074 阅读 · 0 评论