搜索剪枝
文章平均质量分 77
蘑菇小哲
在通往梦想的道路上奋力潜行
展开
-
POJ 1011 Sticks 解题报告
题意:给出n根小棒的长度stick[i],已知这n根小棒原本由若干根长度相同的长木棒(原棒)分解而来。求出原棒的最小可能长度。原创 2014-04-04 19:31:36 · 1137 阅读 · 0 评论 -
奇偶性剪枝
奇偶剪枝是数据结构的搜索中,剪枝的一种特殊小技巧。 现假设起点为(sx,sy),终点为(ex,ey),给定t步恰好走到终点, s | | | + — — — e原创 2015-04-08 15:33:29 · 891 阅读 · 0 评论 -
HDU 1269 迷宫城堡 (强联通分量,Tarjan算法)
Problem Description: 为了训练小希的方向感,Gardon建立了一座大城堡,里面有N个房间(N Input: 输入包含多组数据,输入的第一行有两个数:N和M,接下来的M行每行有两个数a和b,表示了一条通道可以从A房间来到B房间。文件最后以两个0结束。 Output: 对于输入的每组数据,如果任意两个房间都是相互连接的,输出"Yes",否则输出"No"。 S原创 2015-04-08 15:44:32 · 628 阅读 · 0 评论 -
HDU 5202 Rikka with string
Problem Description: As we know, Rikka is poor at math. Yuta is worrying about this situation, so he gives Rikka some math tasks to practice. There is one of them: One day, Yuta got a string which原创 2015-04-15 16:13:45 · 394 阅读 · 0 评论 -
HDU 4607 Park visit (求树的直径)
解题思路: 通过两次DFS求树的直径,第一次以任意点作为起点,找到距离该点距离最远的点,则可以证明这个点一定在树的直径上,然后以该点为起点进行DFS得到的最长路就是树的直径。 最后的询问,如果K = D + 1,则需要走直径旁边的分支,每访问一个点距离为2(从直径到这个点,再返回到直径上)。 #include #include #include #include #include原创 2015-07-19 11:07:32 · 651 阅读 · 0 评论 -
HDU 2196 Computer(求树上每个节点到其它点的最远距离)
解题思路: 求出树的直径的两个端点,则树上每个节点到其他点的最远距离一定是到这两个端点的距离中最长的那一个。 #include #include #include #include #include #include #include #define LL long long using namespace std; const int MAXN = 100000 + 10; s原创 2015-07-19 11:33:20 · 2144 阅读 · 0 评论 -
POJ 1849 Two(求树的直径)
题意: 两个人,遍历树上的所有点,付出的最小代价。 分析可知,最小代价即为所有边的权值的2倍减去树的直径。 #include #include #include #include #include #include #include #include #define LL long long using namespace std; const int MAXN = 1000原创 2015-07-19 16:30:48 · 537 阅读 · 0 评论 -
HDU 3345 war chess(bfs + 优先队列)
War Chess Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 2065 Accepted Submission(s): 493 Problem Description War chess is hh's fav原创 2015-09-01 17:37:28 · 387 阅读 · 0 评论 -
HDU 4634 Swipe Bo (BFS)
Swipe BoTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 1654 Accepted Submission(s): 337 Problem Description“Swipe Bo” is a puzzle game th原创 2015-09-02 18:40:41 · 479 阅读 · 0 评论 -
HDU 5355 Cake(2015多校第六场,搜索 + 剪枝)
Cake Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others) Total Submission(s): 965 Accepted Submission(s): 119 Special Judge Problem Description There原创 2015-08-07 10:35:01 · 1076 阅读 · 0 评论 -
BZOJ 2115: [Wc2011] Xor (dfs + gauss 线性基 异或最长路)
2115: [Wc2011] Xor Time Limit: 10 Sec Memory Limit: 259 MB Submit: 1459 Solved: 637 [Submit][Status][Discuss] Description Input 第一行包含两个整数N和 M, 表示该无向图中点的数目与边的数目。 接下来M 行描述 M 条边,每行三个整数Si,Ti原创 2015-10-20 10:25:46 · 556 阅读 · 0 评论 -
HDU 1428 漫步校园(bfs + 记忆化搜索)
Problem Description: LL最近沉迷于AC不能自拔,每天寝室、机房两点一线。由于长时间坐在电脑边,缺乏运动。他决定充分利用每次从寝室到机房的时间,在校园里散散步。整个HDU校园呈方形布局,可划分为n*n个小方格,代表各个区域。例如LL居住的18号宿舍位于校园的西北角,即方格(1,1)代表的地方,而机房所在的第三实验楼处于东南端的(n,n)。因有多条路线可以选择,LL希望每次的散原创 2015-04-23 17:45:58 · 874 阅读 · 0 评论 -
HDU 1010 Tempter of the Bone(dfs + 奇偶性剪枝)
#include #include #include #include #include #include #include #include #include #include #define LL long long using namespace std; const int MAXN = 10; char s[MAXN][MAXN]; int N, M, T; int原创 2015-04-07 23:58:28 · 390 阅读 · 0 评论 -
骑士移动问题 实现的三种算法 POJ 2243,ZOJ 1091
经典的TKP问题,在8*8的棋盘上,问骑士原创 2014-04-08 23:34:38 · 2287 阅读 · 0 评论 -
POJ 2386 Lake Counting
数据结构老师留得作业,很水的DFS,莫名奇妙的挂了一次,郁闷。。大概思路就是原创 2014-04-13 08:45:18 · 654 阅读 · 0 评论 -
POJ 3026 Borg Maze(bfs + prime)
解题思路: 先用BFS预处理出每个字母节点到其它节点的最短路径,然后套用prime算法。 #include #include #include #include #include #include #include #include #include #include #define LL long long using namespace std; const int原创 2015-02-09 14:46:49 · 578 阅读 · 0 评论 -
HDU 4198 Quick out of the Harbour(优先队列 + bfs)
解题思路: 直接的bfs,因为和时间有关,需要采用优先队列. #include #include #include #include #include #include #include #include #include #include using namespace std; const int MAXN = 500 + 10; char G[MAXN][MAXN];原创 2015-02-09 15:44:42 · 723 阅读 · 0 评论 -
HDU 2354 Another Brick in the Wall(优先队列,bfs)
Problem Description: After years as a brick-layer, you've been called upon to analyze the structural integrity of various brick walls built by the Tetrad Corporation. Instead of using regular-sized原创 2015-04-10 23:47:44 · 1237 阅读 · 0 评论 -
ZOJ 3865 Superbot
解题思路: 简单的bfs, 记录一下当前的键盘状态。 #include #include #include #include #include #include #include #include #include #include #define ll long long using namespace std; int Move[][2] = { {0, -1}, {0原创 2015-04-18 22:37:49 · 480 阅读 · 0 评论 -
ZOJ 1008 Gnome Tetravex
#include #include #include #include #include #include #include #include #include #include #define LL long long using namespace std; const int MAXN = 100 + 10; int table[30]; int squre[30][5]原创 2015-04-06 14:51:56 · 428 阅读 · 0 评论 -
ZOJ 1002 Fire Net(基础dfs)
#include #include #include #include #include #include #include #include #define LL long long using namespace std; const int MAXN = 100 + 10; char m[MAXN][MAXN]; int n, ans; bool canput(int x,原创 2015-04-06 13:48:29 · 488 阅读 · 0 评论 -
ZOJ 1047 Image Perimeters (dfs)
解题思路: 要求目标范围的周长,将图的外围全部置成 ‘.',那么水平方向搜索是遇到的点的数目之和便是所要求的周长。 #include #include #include #include #include #include #include #include #include #include #define LL long long using namespace std原创 2015-04-07 11:43:39 · 589 阅读 · 0 评论 -
HDU 1175 连连看(bfs + 剪枝)
Problem Description: “连连看”相信很多人都玩过。没玩过也没关系,下面我给大家介绍一下游戏规则:在一个棋盘中,放了很多的棋子。如果某两个相同的棋子,可以通过一条线连起来(这条线不能经过其它棋子),而且线的转折次数不超过两次,那么这两个棋子就可以在棋盘上消去。不好意思,由于我以前没有玩过连连看,咨询了同学的意见,连线不能从外面绕过去的,但事实上这是错的。现在已经酿成大祸,就只能原创 2015-04-07 15:50:54 · 745 阅读 · 0 评论 -
HDU 1824 Let's go home (2-SAT判定)
Let's go home Time Limit: 10000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 1616 Accepted Submission(s): 661 Problem Description 小时候,乡愁是一枚小原创 2015-08-19 16:22:25 · 929 阅读 · 0 评论