随笔分类 - Search
摘要:Thinking about it: 刚开始思考的时候,脑子里就觉得这道题可能有很多情况,刚开始就因为考虑不周全wa了。 后来换了一种思路,如果不能马上就直接得到答案,就一个一个字母去尝试。这样子就有点类似dfs了,比如 名字排序后排在中间的z字符串是 s1,,s2,那么第i位的字母肯定介于 s...
阅读全文
摘要:基本思路就是Bfs: 本题的一个关键就是如何判段状态重复。 1.如果将状态用一个int型数组表示,即假设为int state[17],state[0]代表机器人的位置,从1到M从小到大表示障碍物的位置。那么如果直接用STL中的set是会超时的,但如果自己建立一个hash方法,像这样: int...
阅读全文
摘要:基本思路是Dfs: 1. 一个一个格子摆放,以每个各自的左上角的点为基准点代表格子,比如(0,0)代表(0,0)(0,1)(1,0)(1,1)组成的格子,(0,1)代表(0,1)(0,2)(1,1),(1,2)组成的格子,以此类推,即可一个一个格子按顺序摆放。 2. 当摆放(x,y)时,比较分别...
阅读全文
摘要:大致思路是DFS: 1. 每个图案所包含的白色连通块数量不一: Ankh : 1 ; Wedjat : 3 ; Djed : 5 ; Scarab : 4 ; Was : 0 ; Akeht : 2 根据每个图包含的白色连通块判断是哪个图案 2. 两个Dfs函数,一个判断白色,一...
阅读全文
摘要:基本思路是BFS: 1. 题目中已经说了,每相连的2X2格子中必有一个‘#’,也就是,每个点周围最多也就三个方向可以走。因此,可以把所有空格都提出来,形成一个图,直接遍历每条边,而不是每次判断4个方向是否可以走 2.关于结点判重,最初的想法是想用一个六维数组,后来参考了其它,发现其实可以用一个三...
阅读全文
摘要:这道题如果直接用Dfs,运气好的话是可以直接过的。 但如果要在Dfs的基础上加快速度,剪枝是必不可少的。 我的剪枝策略: 1.当前点(x,y)回到出发点至少需要 |x| +| y| 步,如果剩余的步数不足以达到当前所需的最小步数,则剪枝。比如在没有障碍的情况下,要求在4次行走时完成回路...
阅读全文
摘要:大致思路:其实用dfs就可以解决,但是只用dfs的话,会导致超时。在进行dfs前,应该判断一下从1点能否到达目的地,这样就不会超时了,估计是测试数据中有很多是从1点无法到达目的地的。 判断能否到达可以用bfs判断,在这道题里,效率还算不错。C++代码:#include #include #in...
阅读全文
摘要:Problem地址:http://acm.hdu.edu.cn/showproblem.php?pid=1426一道可以用Dfs解决的题目。思路并不难,只要一个一个数字试就行了。但很奇怪,我试图每次挑最可能的数字进行搜索,结果错了。后来直接搜索,没有考虑最有可能的数字,反而还对了。估计我功力还不够深...
阅读全文
摘要:Problem地址:http://acm.hdu.edu.cn/showproblem.php?pid=2364这道题的特殊之处在于能转弯时不能直走,必须转弯,所以在行走时,要判断能否转弯,不能转弯时才选择直走。因为是一道走迷宫的题,所以可以用BFS解决问题。有一点需要注意:起点也有可能是终点,所以...
阅读全文
摘要:Problem地址:http://acm.hdu.edu.cn/showproblem.php?pid=1254看完这到题,我就觉得题目有一点没有说明白:数字3,也就是目标点,人可不可以走。事实证明,数字3是可以走的,所以在判断人是否能到达目的地时,要认为0和3都能走。这是第一点。接着才是我的思路:...
阅读全文
摘要:Problem地址:http://acm.hdu.edu.cn/showproblem.php?pid=1258一道可以用Dfs解决的题。输出时要先将字典序大的先输出。我采取了如下思路:先从第一种数开始,假设这种数的个数为k,则取i(介于k到0)个数,然后在下一种数取一定量的数,然后取下一种数的一定...
阅读全文
摘要:Problem地址:http://acm.hdu.edu.cn/showproblem.php?pid=1175因为题目只问能不能搜到,没问最少要几个弯才能搜到,所以我采取了DFS。因为与Hdu 1728相比,都要考虑转弯次数,所以在判断转弯的次数上,两者可以相互借鉴。这一点应该不难想到,在搜索前就...
阅读全文
摘要:Problem地址:http://acm.hdu.edu.cn/showproblem.php?pid=1181看完这题首先想到的是用DFS,因为只要找到就行了,不求找到的最快方法。首先从开头字母为'b'的单词出发,目标为首尾相接,且末字母为'm'的单词。中间的搜索时的下一个链接单位自然是首尾相接的...
阅读全文
摘要:Problem地址:http://acm.hdu.edu.cn/showproblem.php?pid=1548一道简单的bfs,适合新手。你现在所在的电梯层为一个节点,而你从这个节点可以拜访另外两个节点(电梯向上走为一个节点,电梯向下走有一个节点),而拜访的时候自然也要避免拜访重复,否则会陷入死循...
阅读全文
摘要:Problem地址:http://acm.hdu.edu.cn/showproblem.php?pid=1728这题不是用步数限制行走,而是用拐弯数限制行走参考了这篇文章:http://972169909-qq-com.iteye.com/blog/1244218如果你的代码是优先向右搜索就会出错 ...
阅读全文

浙公网安备 33010602011771号