搜索
lee_haoze
这个作者很懒,什么都没留下…
展开
-
Prime Path POJ - 3126
问一个四位的素数,每次只更改一个数字,保证更改后的四位数仍然是素数,问最短几次可以得到目标数字先计算出素数表,再BFS,每次更改四位数中的一位数,判断合不合法,直到得到目标数字,注意这里也是要book标记数组的~不然会死循环的哦~反正都是一个套路,只有一点点不一样的地方//leehaoze#include <iostream>#include <deque>#include <string>原创 2017-03-27 22:13:49 · 222 阅读 · 0 评论 -
Find The Multiple POJ - 1426
挺简单的BFS搜索,用DFS也能过,不过要注意搜索深度,不要越出了数据范围,大约是第19层会越出数据范围(DFS的话),不过啊、、、这个题,能想到用BFS 不容易啊,,用C++交超时,用G++就A了。尴尬查了一下这俩是编译上不同//leehaoze#include <iostream>#include <deque>#include <string>#include <vector>#in原创 2017-03-17 08:38:24 · 226 阅读 · 0 评论 -
Catch That Cow POJ - 3278
超级简单的一维的BFS搜索,1Y,注意一点,就是不用考虑当前人的位置是在牛的前面还是后面,有的时候即便是在后面也可能需要继续向后挪动//leehaoze#include <iostream>#include <deque>#include <string>#include <vector>#include <queue>#include <cstdio>#include <stack>原创 2017-03-16 17:30:45 · 187 阅读 · 0 评论 -
Dungeon Master POJ - 2251
一道简单的3维的BFS搜索,,一开始受上一个题的影响,直接跑到DFS去了,DFS然后取最优结果,妥妥的超时,期间还犯了一个错误,一个三维数组map[i][j][k], i 应该是对应的z轴,j对应x轴,k对应y轴; 之后换为BFS后,忘了再压入队列的时候把标记设为true,交了一发又超时了,。。改过来之后又交了一发结果wrong了,郁闷,一对比,发现输出有个字母打错了,郁闷了一下午了//leehao原创 2017-03-16 17:14:49 · 273 阅读 · 0 评论 -
非常可乐 HDU - 1495
题目是汉语的,不可能看不懂意思吧。。。这个题写代码写了一会就写完了,交上去1A,然而之前一直不敢动手写,因为觉得没试过呀,三个瓶子相互倒水呢还要,不大敢写,其实依然是简单的BFS,代码的整体框架都没有变,只是中间寻找下一节点发生了变化,变成了倒水,这个过程是自己写函数模拟的,另外就是visit数组,刚开始也是怕~ 哎呀 怎么标记呢,后来直接开了一个三维数组 搞定,,题目不难,就是我的效率低了一些 1原创 2017-03-26 10:32:02 · 267 阅读 · 0 评论 -
棋盘问题 POJ - 1321
挺简单的一道题,但是今天不怎么在状态,硬是写了一会才A的,就是一层一层的搜索,由于只需要放k(k <= n)个棋子,所以可以存在跳行的情况,即当前行不放任何棋子,直接进入下一行的//leehaoze#include <iostream>#include <deque>#include <string>#include <vector>#include <queue>#include <c原创 2017-03-16 15:39:24 · 361 阅读 · 0 评论 -
Fire Game FZU - 2150
这个题题意是两个人在草地上选两点为起点放火,问能不能把草地烧完,能的话画出最短的时间。做法就是选两个起点进行BFS,由于图比较小,可以直接枚举任意两个点进行BFS,选取最短时间这是一个有两个起点的BFS,起初我是打算开两个队列,然后同时进行BFS,然后错了,,后来一想,即便是把所有的点都放在同一个队列里,也是相当于从两个点开始的BFS,然而还是Wrong,后来想是不是判断不能燃烧所有的草地那个地方错原创 2017-03-24 09:38:49 · 320 阅读 · 0 评论 -
Find a way HDU - 2612
哇~~做了一个小时的题啊、、简直了,一个双向BFS,最初的做法是从起点出发,先找到一家KFC,再从KFC出发找到终点,妥妥的超时,后来想了一想,这样的求法基本上是图里有几家KFC,就会遍历几遍图,所以超时,后来换了成从两个端点分别BFS,在KFC的地方分别记录下他们的值,最后去这些中最小的即可,中间一直超时,发现是忘了判断这家KFC能否抵达,结果不是wrong answer 是超时。。。。太神奇了总原创 2017-03-23 10:53:36 · 228 阅读 · 0 评论 -
Oil Deposits HDU - 1241
通过DFS或者BFS分块,求有几块区域,需要注意的是与当前点相邻的有 上下左右 左上左下 右上右下 八个,其他的都没什么难度//leehaoze#include <iostream>#include <deque>#include <string>#include <vector>#include <queue>#include <cstdio>#include <stack>#in原创 2017-03-23 07:51:17 · 185 阅读 · 0 评论 -
迷宫问题 POJ - 3984
简单的BFS搜索 + 回溯路径目前形成的模式就是通过指针的方式回溯,暂未想到其他更好的方式//leehaoze#include <iostream>#include <deque>#include <string>#include <vector>#include <queue>#include <cstdio>#include <stack>#include <algorithm>原创 2017-03-22 20:46:20 · 173 阅读 · 0 评论 -
Red and Black POJ - 1979
题意是说 从@出发,最远可以走多少步,通过DFS遍历这个矩阵即可,注意这个DFS不同于一般的DFS有一个终止条件,通过终止条件退出递归,而是通过设立visit数组为true,最终确保遍历完所有可以抵达的点后 退出DFS//leehaoze#include <iostream>#include <deque>#include <string>#include <vector>#include原创 2017-03-22 20:23:44 · 342 阅读 · 0 评论 -
Pots POJ - 3414
一个比较麻烦一点的BFS 题意是有两个容量分别为A,B的空水杯,可以对他们进行如下操作: 1. 选择其中一个水杯倒满水 2. 选择其中一个水杯清空其中的水 3. 选择一个水杯,将其中的水倒入到另一个水杯,直到另一个水杯满或者选择的水杯没有水了希望通过这些操作使其中的一个水杯中水量为C整体依然是BFS,只是在寻找下一步可能情况的时候比较麻烦,我直接写了对应操作的三个函数原创 2017-03-22 15:24:06 · 287 阅读 · 0 评论 -
Shuffle'm Up POJ - 3087
心情糟糕了几天,唉西~ 好几天没怎么做题这个题刚开始怎么想也都没有想到是一个搜索题,直接模拟也可以,后来一想,这个问题,是从当前位置出发,只有一种可能性的搜索,以前都是从队列取出当前点后,通过for循环寻找下一个点,这个直接求出下一个点就可以,而且是一定合法的,终止条件稍微考虑一下,我写了一个 4 * len的平方 肯定比实际范围大一些//leehaoze#include <iostream>#原创 2017-03-22 13:59:15 · 227 阅读 · 0 评论 -
Ancient Go HDU - 5546
下的棋类似于围棋,只要一方把另一方围起来使得另一方的棋子没有空格块可以相邻,便算作Kill,问黑方能否kill掉白方至少一个棋子 其实就是简单的找白方的连同块 顺带着判断这个连同块有没有空白格相邻,如果只有一个空白格相邻,那么就可以让黑方把棋子下在这个位置 从而Kill白方的棋子//leehaoze#include <iostream>#include <deque>#include <st原创 2017-04-16 21:10:00 · 216 阅读 · 0 评论