搜索
文章平均质量分 57
EaShion1994
这个作者很懒,什么都没留下…
展开
-
POJ-2718 smallest difference (DFS 随机数 剪枝)
Smallest DifferenceTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 4745 Accepted: 1314DescriptionGiven a number of distinct decimal digits, you can form原创 2014-12-15 12:44:20 · 761 阅读 · 0 评论 -
POJ_3669 Meteor Shower(BFS)
题目请点我 题解: 这道题涉及到状态转换,所以放入到队列里广搜是没错的。最开始的思路是设定一个时间轴,按照每刻能走到的地方去扩展,按照炸弹的爆炸去排除一些点。这种思路是可以过得,但是可能稍微麻烦了一点,其实可以换一种思路,在最开始标记出所有会被炸到的点,然后可以对不会再扩展的点直接进行判断,而可以扩展的点一样拓展,可能会快一点。觉得自己的方法是笨了一点,可能会很浪费时间,而且会感觉很乱。 另外原创 2015-08-10 11:02:39 · 565 阅读 · 0 评论 -
POJ_1734 Sightseeing trip(拓扑)
题目请点我 题解: 这是一道简单的深搜,找到最短的一个环。深搜遍历每一个点,注意剪枝,边为双向边,并且可能会有重边。 代码实现:#include <iostream>#include <cstdio>#include <cstdlib>#include <cstring>#include <vector>#define MAX_N 110#define MAX_M 10010#d原创 2015-06-21 18:36:27 · 465 阅读 · 0 评论 -
POJ_3278 Catch That Cow(BFS)
DescriptionFarmer John has been informed of the location of a fugitive cow and wants to catch her immediately. He starts at a point N (0 ≤ N ≤ 100,000) on a number line and the cow is at a point K (0 ≤原创 2015-05-04 22:35:29 · 470 阅读 · 0 评论 -
UVA_11039 Building Designing
题目请点我 题解: 这道题不难,简单的模拟吧。但是收获是定义优先队列的优先级。同学还有一种思路是只放入一个数组中,重载sort比较函数后输出,也很棒。 代码实现:#include <iostream>#include <cstdio>#include <cstdlib>#include <cstring>#include <queue>using namespace std;////原创 2015-06-28 20:14:22 · 502 阅读 · 0 评论 -
Hdu_2585 Hotel(递归)
题意:字符串的模糊匹配。给出一个原始串,里面包含字母、‘?‘(代表一个字母)以及‘*’(代表零个或多个字母)。然后给出多个匹配串,问最终可以匹配成功的有多少个。思路:最开始的时候想贪心的写出一个验证函数来每次检测是否匹配,但是遇到“*s”匹配“sas”的情况不好写,因为不知道拿哪一个s去匹配。参考了网上的思路用递归去写这个函数,思路也比较清晰。递归的思路可以这么想,就是上面的那种情况导原创 2016-12-17 08:54:47 · 473 阅读 · 0 评论 -
Poj_2965 The Pilots Brothers' refrigerator(状态压缩,bfs)
题意:有一个4*4的矩阵,01填充,通过翻转把所有的0变为1,但是翻转[i,j]的同时,要把同行同列的都翻转。思路:最开始的时候写了裸的BFS,太过暴力所以果断TLE。看了题解才知道是状态压缩,很高兴能遇到这样经典的状态压缩题目。虽然有巧妙的解法,但是从状态压缩中学到了更多的东西。首先有几个点要先明白:1. 每个点最多翻转一次;(翻转2n次相当于没翻转,翻转2n+1次相当于翻转原创 2016-12-14 22:45:13 · 372 阅读 · 0 评论 -
Poj_1753 Flip Game(状态压缩,bfs)
题意:4*4棋盘上有黑白棋子,通过最小次数的转换把棋盘上的棋子变为全白色或者全黑色。每次翻转棋子都要将其上下左右都翻转,每次翻转3-5个棋子。思路:题目类似于之前做的Poj_2965,更简单一点。思路就是状态压缩+bfs,自己推update函数推了半天。代码实现:#include #include #include #include #include using n原创 2016-12-15 10:53:22 · 431 阅读 · 0 评论 -
Poj_1011 Sticks(dfs)
题意:有一堆木棒是由同一长度的木棒切割出来的,求最小可能的初始木棒长度。思路:这道题的关键在于如何确定某一长度的木棒能够满足条件。用到dfs,但是因为TLE需要多次的剪枝。1. 初始木棒可选长度一定是木棒长度和的约数,同时一定大于任意一根木棒的长度;2. 将木棒降序排序,因为较长的木棒比较不容易找到合适的匹配木棒来凑;3. 当前木棒如果不能满足条件,和它长度相同的木棒也一定原创 2016-12-21 19:12:11 · 440 阅读 · 0 评论 -
HDOJ-1242 Rescue(广搜,剪枝)
RescueTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 17182 Accepted Submission(s): 6209Problem DescriptionAngel was caught b原创 2014-12-14 16:51:42 · 942 阅读 · 0 评论 -
USACO Prime Palindromes(dfs)
题目请点我 题解: 这道题看起来是一道很简单的题目,但是数据量很大。如果暴力判断会超时,预处理筛法标记素数则会超内存。最后看了网上的解法才知道要逆推,生成回文数,这还是要第一次遇到。并且很重要的一点是偶数位的回文数都能被11整除,所以只需要生成奇数位的,偶数位回文素数符合情况的值可能有11一个。挺考验思维的,重要的是do mathmatics first. 代码实现:/*ID: eashio原创 2015-07-19 14:34:46 · 561 阅读 · 0 评论 -
POJ 3187 Backward Digit Sums (DFS 全排列)
Backward Digit SumsTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 4531 Accepted: 2604DescriptionFJ and his cows enjoy playing a mental game. They write原创 2014-12-15 18:25:27 · 604 阅读 · 0 评论 -
POJ Hopscotch (DFS)
HopscotchTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 2169 Accepted: 1555DescriptionThe cows play the child's game of hopscotch in a non-traditional原创 2014-12-16 18:59:21 · 619 阅读 · 0 评论 -
POJ_1564 Sum It Up(DFS)
DescriptionGiven a specified total t and a list of n integers, find all distinct sums using numbers from the list that add up to t. For example, if t = 4, n = 6, and the list is [4, 3, 2, 2, 1, 1], the原创 2015-05-08 20:11:21 · 708 阅读 · 0 评论 -
ZOJ_1003 Crashing Balloon(DFS)
题目请点这里 题解: 这是一道DFS的题目,最开始想了很久,卡在了如何判断两个数确定是冲突的,之后参考同学的思路,从头开始尝试让两个数分别对这些数取余,构造一棵树,然后看能到达哪种结果,依据树的分支判断结果。 首先理清楚关系:(num1>num2) 如果num2不能约到1,此时一定是num1赢; 如果num2能约到1,就需要看num1的情况, 如果num1能约到1,则num1赢,如果nu原创 2015-06-24 19:22:34 · 506 阅读 · 0 评论 -
HDU_2069 Coin Change(dfs)
题目请点我 题解: 钱币的问题,背包应该是能做的,但是用暴力dfs也过了。注意所有的钱币加起来不能超过100枚,被这里坑了,睡了一觉醒来把它A掉了。 代码实现:#include <iostream>#include <cstring>#include <cstdio>#include <cstdlib>#define MAX_C 110#define MAX_M 255#defin原创 2015-06-27 13:54:53 · 579 阅读 · 0 评论 -
追踪ws的怪蜀黍(DFS)
追踪WS的怪蜀黍美丽的河海大学校园里惊现一只ws的怪蜀黍,搞得校园里的女同胞们人心惶惶。河海大学男同胞们个个义愤填膺,他们打算团结起来捕捉这只ws怪蜀黎,把它送到相关部门处理。所以男同胞们成立了一个“BeatWS”团队,决定展开激烈的搜捕,捕捉这只怪蜀黎。然而怪蜀黎也是相当狡猾的,它提高了警惕,并尽量地躲开男同胞们的视线,妄想逃之夭夭。假设河海大学是一个M*N的矩形点阵(2原创 2015-05-25 22:41:41 · 707 阅读 · 0 评论 -
HDU_(1010) Tempter of the Bone(DFS,剪枝)
题目请点我 题意: 有一个迷宫,看能不能经过T秒恰好从起点走到终点。因为可能会考虑到绕路,2^49可能会超时(况且涉及到绕路,墙的数目一定不会很多),我们就可以在每次都进行一次判断,看剩下的时间能否走到终点。另外因为只能在T秒走到,那么绕路的话一定会多走偶数步数,利用这个性质也可以剪枝。这道题其实之前做过的,但是第二次做还是TLE了很多次,其实这题的关键不仅是dfs,在T秒恰好到达需要绕路才是这原创 2015-06-14 17:15:27 · 645 阅读 · 0 评论 -
POJ_3009 Curling 2.0(dfs)
题目请点我 题解:就是裸的深搜,注意看好题目要求条件。 代码实现:#include <iostream>#include <cstdio>#include <cstdlib>#include <cstring>#include <algorithm>#define MAX 22#define INF 5000using namespace std;int W,H;int sx,sy原创 2015-08-09 14:27:01 · 454 阅读 · 0 评论 -
Poj_3278 Catch That Cow(BFS)
题意:约翰在N,牛在K。约翰可以花一分钟从x走到x+1,x-1或者2*x。问约翰最少花多少时间找到牛。思路:最少时间,想到用BFS。用结构体存储约翰的状态(pos,time),TLE了之后又开了一个数组标记到过的点,然后AC。这道题好像做过。。。代码实现:#include #include #include #include #include #include u原创 2016-12-20 19:59:11 · 448 阅读 · 0 评论