--------------搜索--------------
yphacker
心之所动,且就随缘去吧
展开
-
POJ 1321 棋盘问题(深搜)
题目链接:http://poj.org/problem?id=1321解题思路:思路在代码里写的很清楚了。。。AC代码:#include #include #include using namespace std;int n,m;char node[10][10];int vis[10];int ans;void dfs(int row,int sum)原创 2015-08-23 20:41:14 · 630 阅读 · 0 评论 -
POJ 3984 迷宫问题(bfs+打印路径)
AC代码:#include #include #include #include #include using namespace std;struct node{ int x,y; int t; bool operator < (const node &a)const{ return t > a.t; }}pa[10][10];原创 2016-01-17 23:31:35 · 344 阅读 · 0 评论 -
POJ 1753 Flip Game(搜索+位运算)
Flip Game题目链接:http://poj.org/problem?id=1753解题思路:题目大意:有一个4*4的方格,每个方格中放一粒棋子,这个棋子一面是白色,一面是黑色。游戏规则为每次任选16颗中的一颗,把选中的这颗以及它四周的棋子一并反过来,当所有的棋子都是同一个颜色朝上时,游戏就完成了。现在给定一个初始状态,要求输出能够完成游戏所需翻转的最小次数,如原创 2016-04-04 16:42:54 · 1677 阅读 · 0 评论 -
POJ 1077 Eight(八数码A*+IDA*)
Eight题目链接:http://poj.org/problem?id=1077解题思路:题目大意:将分别标有数字1,2,3,…,8的八块正方形数码牌任意地放在一块3×3的数码盘上。放牌时要求不能重叠。于是,在3×3的数码盘上出现了一个空格。现在要求按照每次只能将与空格相邻的数码牌与空格交换的原则,将任意摆放的数码盘摆成如下的状态。1 2 34 5 67原创 2016-04-05 16:46:44 · 916 阅读 · 0 评论 -
hdu 1010 Tempter of the Bone(dfs)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1010解题思路:大一时,学长讲这题时,是用dfs讲的,当时并没在意学长为什么用dfs讲,如今身为学长,给他们将这题时,想换一种方法用bfs敲出来,/结果wrong到哭,然后再仔细读题才发现只有到T时刻才开门,你可以在中途到处转,直到到了那时刻到终点就行了。。。AC代码:#in原创 2015-08-10 14:58:50 · 376 阅读 · 0 评论 -
hdu 2717 Catch That Cow(搜索)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2717解题思路:简单的搜索题,直接搜就可以了。。。AC代码:#include #include #include #include using namespace std;const int N = 100000;int n,k;int vis[N+10];v原创 2015-08-10 15:02:21 · 384 阅读 · 0 评论 -
hdu 5305 Friends(dfs)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5305解题思路:由于总点数很少,我们考虑暴力。但是总的边数有(8*7)/2=28,所以直接枚举每条边的状态无疑会TLE。又注意到如果存在一个点的度数为奇数,那么最后答案肯定时0,每个点度数都为偶数时,总边数最多为(8*6)/2=24.还是一个蛮大的数字。最后一个优化是,每次搜索一个点时,原创 2015-08-14 09:55:51 · 744 阅读 · 0 评论 -
POJ 2386 Lake Counting(dfs)
题目链接:http://poj.org/problem?id=2386解题思路:搜索大水题。。。AC代码:#include #include using namespace std;int n,m;char a[110][110];void dfs(int x,int y){ if(x=n || y=m|| a[x][y] == '.')原创 2015-08-11 17:16:50 · 366 阅读 · 0 评论 -
POJ 3669 Meteor Shower(bfs)
题目链接:http://poj.org/problem?id=3669解题思路:给m个坐标,分别会在不同的t时刻下流星雨,请求出最少需要多长时间才能到达安全的地方,被流星雨摧毁的地方不能再走了。。。首先预处理,将流星出现的最早时间用vis数组标记,然后再用bfs搜索。。。注意数组要开到400多,不然会wrong。。。AC代码:#include #include #i原创 2015-08-11 14:41:54 · 613 阅读 · 0 评论 -
hdu 1885 Key Task(bfs+状态压缩)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1885解题思路:状态压缩,使用二进制分别存储每把钥匙是否拥有的状态,然后当遇到门时,查看此时相应的二进制位数上是否有相应的钥匙,如果有,则进队列,继续搜就行了。直到找到终点为止。。。AC代码:#include #include #include #include usin原创 2015-08-10 15:11:46 · 461 阅读 · 0 评论 -
hdu 1548 A strange lift(bfs)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1548解题思路:和hdu2717很相似,也是按题意来,直接搜就行了。。。AC代码:#include #include #include #include using namespace std;const int N = 200;int n,A,B;int a[N原创 2015-08-10 15:06:09 · 355 阅读 · 0 评论 -
hdu 5040 Instrusive(bfs+优先队列)(模拟)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5040解题思路:题目大意:给你一个图,里面有起点,终点,和监视器的位置,每个监视器有东南西北的初始朝向,每个监视器的监视范围是两格(自身所在区域算一个),每过1秒钟,所有监视器的所朝方向都会顺时针旋转90度,从被监视位置到其他的任何位置都需要消耗3秒钟,从其他位置进入被监视位原创 2015-09-19 10:57:53 · 558 阅读 · 0 评论 -
hdu 5113 Black And White(dfs+剪枝)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5113解题思路:题目大意:给你一个N*M的棋盘,要求用K种颜色对每个格染色,相邻的格的颜色不能相同。并且第i种颜色必须恰好出现c[i]次。求是否存在该方案,如果存在,输出任意一种。算法思想:因为n,m都比较小,所以直接搜索即可,但是需要加一个剪枝,因为当剩下的容量为n时,原创 2015-09-17 17:34:31 · 367 阅读 · 0 评论 -
hdu 5024 Wang Xifeng's Little Plot(搜索)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5024解题思路:题目大意:从图中任何一个点走,最多只能转一个90度的弯,求这个最长路。。。算法思想:暴力枚举每个点的8个方向的90度,然后找最大值即可。。。AC代码:#include #include using namespace std;int n;ch原创 2015-09-16 21:35:37 · 420 阅读 · 0 评论 -
POJ 1088 滑雪(递归+记忆化搜索)
题目链接:http://poj.org/problem?id=1088解题思路:中文题。。。题意已经很清楚了,直接搜索就行了,不过需要记忆化,不然会超时,就是用一个vis数组保存上次搜索过的路,这样一来,曾经搜索过的路,就不需要再走了。。。AC代码:#include #include #include #include using namespace std;c原创 2015-08-27 11:21:30 · 845 阅读 · 0 评论 -
hdu 5335 Walk Out
官方解析:If we require that the explorer could only move downward or rightward, this problem will be easier: the length of the binary number will always be n+m-1, and we could work this out length原创 2015-08-01 23:05:55 · 405 阅读 · 0 评论 -
hdu 5336 XYZ and Drops
暴力模拟每个水滴和小水滴的状态即可,复杂度O(n*T)。(大家可以想一下1#include #include #include #include #include #include using namespace std;const int maxn=110;struct node{ int x,y,val,t;}no[maxn];struct water原创 2015-08-01 23:08:23 · 489 阅读 · 0 评论 -
hdu 5423 Rikka with Tree(深搜)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5423解题思路:看懂了题目,就是水题,看不懂,无从下手,就是难题。。。显然一棵树是独特的当且仅当任意处于每一个深度的点数是"1 1 1 1 ... 1 1 x"。所以直接DFS一下求出每一个点到根的距离然后判断一下就好了 。AC代码:#include #include #原创 2015-08-31 09:38:23 · 451 阅读 · 0 评论 -
hdu 5355 Cake(贪心+搜索)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5355解题思路:官方题解:SummaryYou are given n integers 1, 2, . . . , nn and an integer mm. You need to divide the nn integer into mmeq原创 2015-09-01 22:38:38 · 420 阅读 · 0 评论 -
hdu 4277 USACO ORZ(dfs搜索+set判重)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4277解题思路:题目大意:给你n个有长度的线段,问如果用上所有的线段来拼1个三角形,最多能拼出多少种不同的?算法思想:暴力搜索,令x最大,y次之,z最小,然后进行剪枝,用set判重AC代码:#include #include #include using n原创 2015-08-28 09:25:36 · 434 阅读 · 0 评论 -
hdu 4414 Finding crosses(搜索)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4414解题思路:题目大意:给你一个 n*n 的图 (3 比如说这个图:有一个十字架,那么红色区域都不能够是 "#", 否则这个十字架不算数。。。AC代码:#include原创 2015-09-04 22:02:17 · 601 阅读 · 0 评论 -
hihoCoder 1233 Boxes(状态压缩)
题目链接:http://hihocoder.com/problemset/problem/1233解题思路:题目大意:有n个卡槽,放有体积不同的n个空盒子,每次你可以移动一个空盒子到相邻卡槽,但前提是相邻卡槽若已经有空盒子,那么要移动的空盒子体积必须小于已有的空盒子,问要移动多少步才能使得从左到右,每个卡槽空盒子的体积递增。解题思路:说实话,不得不佩服网上的一些大牛原创 2015-09-25 22:05:04 · 572 阅读 · 0 评论 -
hdu 4707 Pet(深搜)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4707解题思路:题目大意:给你n个点,标号为0~n-1,还有n-1条边,数据保证n-1条边不成环,也就是说,输入的节点为n的一棵树。根节点为0,要你求深度大于d的节点的数目。算法思想:从根节点0开始,dfs其所有的子节点,统计深度小于等于d的节点的数目cnt,那么答案就是n-原创 2015-09-06 22:14:33 · 398 阅读 · 0 评论 -
hdu 5025 Saving Tang Monk(BFS+状态压缩)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5025解题思路:题目大意:给你一个地图,孙悟空(K)救唐僧(T),地图中'S'表示蛇,第一次遇到时需要杀死蛇(蛇最多5条),多花费一分钟,'1'~'m'表示m个钥匙(m后,然后才能去救唐僧,集齐m个钥匙之前可以经过唐僧,集齐x个钥匙以前可以经过x+1,x+2..个钥匙,问最少原创 2015-09-16 22:10:11 · 474 阅读 · 0 评论 -
hdu 1312 Red and Black && POJ 1979 Red and Black
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1312解题思路:暴力直接搜就可以了,走过的地方标记一下就行了。。。AC代码:#include #include #include #include using namespace std;struct node{ int x,y;}no[450];cons原创 2015-08-10 14:52:53 · 425 阅读 · 0 评论