
=====搜索=====
yxg_123
这个作者很懒,什么都没留下…
展开
-
紫书搜索 习题7-10 UVA - 11214 Guarding the Chessboard 迭代加深搜索
题目链接:https://vjudge.net/problem/UVA-11214题意:给出m*n棋盘上的目标点,求最少用几个皇后可以守卫所有目标点。 题解:类似八皇后做法,2维数组标记行、列、主对角线、副对角线。 代码:#include <bits/stdc++.h>using namespace std;typedef long long ll;#define MS(a) memset(a原创 2017-03-14 17:28:23 · 375 阅读 · 0 评论 -
紫书搜索 例题7-5 UVA - 129 Krypton Factor
题目链接:https://vjudge.net/problem/UVA-129题意:题解:代码:#include <bits/stdc++.h>using namespace std;typedef long long ll;#define MS(a) memset(a,0,sizeof(a))#define MP make_pair#define PB push_backconst i原创 2017-03-12 12:42:38 · 279 阅读 · 0 评论 -
紫书搜索 例题7-4 UVA - 524 Prime Ring Problem
题目链接:https://vjudge.net/problem/UVA-524题意:给一个n,要求生成1~n的排列,第一个数是1,相邻的两个数的和是素数,包括第一个和最后一个。题解:代码:#include <bits/stdc++.h>using namespace std;typedef long long ll;#define MS(a) memset(a,0,sizeof(a))#de原创 2017-03-12 12:05:23 · 259 阅读 · 0 评论 -
hdu5248 序列变换 二分
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5248题意:题解:二分 从上一个位置到达这个位置,可以通过上一个位置推出当前位置必须到达的最小值now,如果now代码:#include <bits/stdc++.h>using namespace std;typedef long long ll;#define MS(a) memset(a,0原创 2017-03-06 20:13:32 · 360 阅读 · 0 评论 -
cdoj1087 基爷的中位数 二分
题目链接:http://acm.uestc.edu.cn/#/problem/show/1087题意:题解:二分枚举中位数,然后:mid为当前的中位数,找到比a[i]大mid的数(>=a[i]+mid)的个数,判断cnt是不是有总数的一半代码:#include <bits/stdc++.h>using namespace std;typedef long long ll;#define MS(原创 2017-03-06 19:08:11 · 374 阅读 · 0 评论 -
BZOJ 1196: [HNOI2006]公路修建问题 Kruskal/二分
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1196题意:题解:其实也并不是最短路,只是用Kruskal的方法去判定符合条件的ans。 我先让所有公路花费c1(保证了最大值,二分使得最大值最小),用并查集维护一下是否在一个集合,这样剩下的路就都只能用c2的钱代码:#include <bits/stdc++.h>using namesp原创 2017-03-06 18:23:37 · 281 阅读 · 0 评论 -
CodeForces Gym 100500A A. Poetry Challenge DFS
题目链接:http://codeforces.com/gym/100500/attachments题意:文字接龙,谁接不下去了,就算谁输 输出赢家 都很聪明的情况下题解:看起来是博弈 不会啊 这个dfs还不懂 qsc ls:转化成图论之后,直接DFS爆搜就好了!代码:#include <bits/stdc++.h>using namespace std;typedef long lo原创 2017-02-27 18:02:00 · 433 阅读 · 0 评论 -
cdoj 483 Data Structure Problem DFS
题目链接:http://acm.uestc.edu.cn/#/problem/show/483题意:给你n个数,然后这n个数构成的二叉树,是平衡二叉树还是堆题解:dfs 根据题目中给的 堆 (a[x]>=a[x*2] && a[x]>=a[x*2+1]) || (a[x]<=a[x*2] && a[x]<=a[x*2+1]) 最大堆 最小堆 BST (a[x]>a[x*2] && a[原创 2017-02-27 13:16:56 · 274 阅读 · 0 评论 -
Codeforces Round #313 (Div. 1) B. Equivalent Strings DFS暴力
题目链接:http://codeforces.com/contest/559/problem/B题意:判断俩字符串是否相似,相似的条件如下: a1+a2=A,a1和a2都是A的一半 b1+b2=B,同理 如果A,B相等,那么相似 如果A的长度为偶数{ 如果a1与b1,a2与b2相似或者a1与b2,b1与a2相似 那么A,B相似 } 否则不相似题解:dfs代码:#include原创 2017-02-27 12:11:44 · 308 阅读 · 0 评论 -
Codeforces Gym 100463D Evil DFS
题目链接:http://codeforces.com/gym/100463题意:给你一个坐标系,上面有n个点,要求找到一个矩形,使得能够框住一半的红点,不框进任何一个蓝点,求最小矩形面积题解:暴力枚举,注意,矩形面积可以为0代码:#include <bits/stdc++.h>using namespace std;typedef long long ll;#define MS(a) mems原创 2017-02-27 09:11:44 · 241 阅读 · 0 评论 -
紫书搜索 例题7-6 UVA - 140 Bandwidth
题目链接:https://vjudge.net/problem/UVA-140题意:题解:代码:#include <bits/stdc++.h>using namespace std;typedef long long ll;#define MS(a) memset(a,0,sizeof(a))#define MP make_pair#define PB push_backconst i原创 2017-03-12 13:49:18 · 278 阅读 · 0 评论 -
紫书搜索 例题7-9 UVA - 1601 The Morning after Halloween 双向bfs
题目链接:https://vjudge.net/problem/UVA-1601题意:题解:http://blog.youkuaiyun.com/qq_29169749/article/details/51420097 隐式图搜索问题,类似dijkstra,用bfs解决,这个是单向搜索,弊端是有时候随着搜索的深入,可扩展的结点会越来越多,造成效率变慢,用双向bfs可以解决这个问题代码:双向bfs:#inclu原创 2017-03-12 17:01:32 · 301 阅读 · 0 评论 -
紫书搜索 例题7-12 UVA - 1343 The Rotation Game IDA*迭代加深搜索
题目链接:https://vjudge.net/problem/UVA-1343题意:数字1,2,3都有八个,求出最少的旋转次数使得图形中间八个数相同。 旋转规则:对于每一长行或每一长列,每次旋转就是将数据向头的位置移动一位,头上的数放置到尾部。若次数相同,则找出字典序最小旋转次序。 输入是从上到下,从左向右,注意方向题解:代码:#include <bits/stdc++.h>using na原创 2017-03-12 19:20:25 · 260 阅读 · 0 评论 -
紫书搜索 习题7-8 UVA - 12107 Digit Puzzle IDA*迭代加深搜索
题目链接:https://vjudge.net/problem/UVA-12107题意:给出一个数字谜,要求修改尽量少的数,使修改后的数字谜只有唯一解。空格和数字可以随意替换,但不能增删,数字谜中所有涉及的数必须是没有前导零的正数。输入数字谜一定形如a*b=c,其中a、b、c分别最多有2、2、4位。题解:http://www.cnblogs.com/tyty-Somnuspoppy/p/636672原创 2017-03-14 16:59:20 · 893 阅读 · 0 评论 -
紫书搜索 习题7-7 UVA - 12558 Egyptian Fractions (HARD version) IDA*迭代加深搜索
题目链接:https://vjudge.net/problem/UVA-12558题意:题解:输出要用lld IDA*迭代加深搜索 紫书例题改一改代码:#include <bits/stdc++.h>using namespace std;typedef long long ll;#define MS(a) memset(a,0,sizeof(a))#define MP make_p原创 2017-03-14 15:25:17 · 295 阅读 · 0 评论 -
紫书搜索 习题7-6 UVA - 12113 Overlapping Squares 暴力
题目链接:https://vjudge.net/problem/UVA-12113题意:题解:代码:#include <bits/stdc++.h>using namespace std;typedef long long ll;#define MS(a) memset(a,0,sizeof(a))#define MP make_pair#define PB push_backconst原创 2017-03-14 12:18:28 · 316 阅读 · 0 评论 -
紫书搜索 习题7-4 UVA - 818 Cutting Chains 暴力+dfs判环+位运算
题目链接:https://vjudge.net/problem/UVA-818题意:选几个圆环去open。然后该圆环和其他就断开了。然后用这些open的圆环去连接剩下的圆环【最后打开的会合上】,看能不能连成一串。。求最少的open个数。题解:n为15.利用位运算去枚举哪几个圆环要open。然后判断剩下圆环有没有与超过2个圆环的连接或者形成环,如果没有,在判断剩下的链个数有没有超过open个数-1.如原创 2017-03-14 10:41:06 · 268 阅读 · 0 评论 -
紫书搜索 习题7-3 UVA - 211 The Domino Effect 搜索dfs
题目链接:https://vjudge.net/problem/UVA-211题意:给一副图,代表多米诺骨牌摆放方式,每两个连成一块牌,如0 0 对应1号排 0 1 对应2号排,问图可以代表几种摆放方式。题解:dfs,每个位置的牌不是竖就是横,枚举2个方向,最多枚举28块,O(2^28),加个剪枝,如果进入枚举下一行了,当前行还有没填上的,就直接回溯。代码:#include <bits/stdc++原创 2017-03-13 23:04:38 · 306 阅读 · 0 评论 -
紫书搜索 习题7-2 UVA - 225 Golygons 搜索dfs
题目链接:https://vjudge.net/problem/UVA-225题意:题解:枚举每一步的方向 没有想到字典序可以从一开始找方向就处理掉。 还有多一条剪枝,就是当前位置太远剩余的所有步数都不够回道原点代码:#include <bits/stdc++.h>using namespace std;typedef long long ll;#define MS(a) memset(a,原创 2017-03-13 21:25:50 · 254 阅读 · 0 评论 -
紫书搜索 例题7-10 UVA - 11212 Editing a Book 迭代加深搜索 IDA*
题目链接:https://vjudge.net/problem/UVA-11212题意:题解:IDA*,每次改变深度上限去剪枝代码:#include <bits/stdc++.h>using namespace std;typedef long long ll;#define MS(a) memset(a,0,sizeof(a))#define MP make_pair#define PB原创 2017-03-13 19:36:09 · 241 阅读 · 0 评论 -
紫书搜索 习题7-1 UVA - 208 Firetruck 搜索dfs
题目链接:https://vjudge.net/problem/UVA-208题意:题解:代码:#include <bits/stdc++.h>using namespace std;typedef long long ll;#define MS(a) memset(a,0,sizeof(a))#define MP make_pair#define PB push_backconst i原创 2017-03-13 20:06:36 · 259 阅读 · 0 评论 -
紫书搜索 例题7-13 UVA - 1374 Power Calculus 迭代深搜+剪枝 IDA*
题目链接:https://vjudge.net/problem/UVA-1374题意:给定一个数n,让你求从1至少要做多少次乘除才可以从 x 得到 xn。题解:首先这个是幂级的,次数不会很多,所以可以考虑IDA*算法,这个算法并不难,难在找乐观函数h(x),这个题乐观函数可以是当前最大数*2^(maxd - d) 小于n,回溯。很好理解,最大的数再一直乘2都达不到,最终肯定达不到。再就是应该先试乘再原创 2017-03-12 19:46:43 · 293 阅读 · 0 评论 -
codeforces Gym 100187J J. Deck Shuffling dfs
题目链接:http://codeforces.com/gym/100187/problem/J题意:给你一堆牌,和一些洗牌机,可以改变牌的顺序,问你能不能通过洗牌机把数字为x的牌洗到第一个位置。 样例一: 最初的牌 4 3 2 1 通过第一个洗牌机把第四个位置的x(=1)洗到第三个位置 然后 第二个洗牌机把当前在第三个位置x洗到第一个位置题解:建边,把洗牌机每个位置–>下一个位置(也就是这个原创 2017-02-27 01:21:03 · 377 阅读 · 0 评论 -
洛谷1281 书的复制 二分
题目链接:https://www.luogu.org/problem/show?pid=1281题意:题解:二分法+贪心。 二分最大时间t贪心判断t是否可行,求出最小时间T。 贪心构造解:从后向前尽量分配给靠后的人更多的书。代码:#include <bits/stdc++.h>using namespace std;typedef long long ll;#define MS(a) m原创 2017-03-08 13:23:49 · 717 阅读 · 0 评论 -
Codeforces Round #297 (Div. 2)D. Arthur and Walls 搜索bfs
题目链接:http://codeforces.com/contest/525/problem/D题意给你一个n*m的田地,有一些*的地方是可以移除变成"."的,然后问你移除最少的"*",使的每一个"."的联通块都是矩形题解:2*2 的矩形中,如果有一个 '*' 与三个 '.' ,那么这个 '*' 就一定要变成 ‘.' ,然后bfs代码#include <bits/stdc++.h>using原创 2017-02-25 00:56:43 · 234 阅读 · 0 评论 -
Aizu 2306 Rabbit Party DFS
题目链接:http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=2306题意:给定n个点的完全图,下面给出m条边权不为0的边 下面m行给出边和边权。 其他的边边权都为0. 选择一个点集出来,点权是这个点连接这个点集的边权最小值 找一个这样的子图使得点权和最大,输出点权和。题解:最后选出来的点,一定是由那m个边所组成的完全图 因为是原创 2017-03-01 00:40:21 · 198 阅读 · 0 评论 -
Codeforces Round #321 (Div. 2) C. Kefa and Park dfs
题目链接:http://codeforces.com/contest/580/problem/C题意:给你一棵树,然后每个叶子节点会有一家餐馆 你讨厌猫,就不会走有连续超过m个节点有猫的路 然后问你最多去几家饭店题解:dfs代码:#include <bits/stdc++.h>using namespace std;typedef long long ll;#define MS(a) me原创 2017-02-28 22:16:53 · 227 阅读 · 0 评论 -
Hdu 5444 Elven Postman dfs
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5444题意:给你n个数字,这n个数字是按照二叉搜索树的节点特性给你的,让你建好这棵二叉搜索树,然后,再给出一些询问,让你回答从根节点到某个节点该怎么走? http://www.cnblogs.com/zyf0163/p/4805218.html?tvd 样例解释的题意题解:dfs: http://www原创 2017-02-28 20:17:06 · 340 阅读 · 0 评论 -
hihocoder #1224 : 赛车 dfs
题目链接:http://hihocoder.com/problemset/problem/1224题意:题解:首先我们先dfs出最长链,然后我们再dfs出每一个点能够最长延展多少 然后最后答案就是最长链的长度+最长延展多少就好了代码:#include <bits/stdc++.h>using namespace std;typedef long long ll;#define MS(a) me原创 2017-02-28 02:16:23 · 234 阅读 · 0 评论 -
Codeforces Gym 100338I TV Show DFS
题目链接:http://codeforces.com/gym/100338/attachments题意:一个人去参加电视有奖问答的节目,初始奖金为100元,每答对一道问题奖金翻倍,答错奖金清零。此外有一次保险机会:花费C的奖金,下一题可以答对奖金翻倍,答错奖金不清零。 现在给你答对每道题的概率,求最优答题策略的奖金期望。题解:http://blog.youkuaiyun.com/qq_15714857/ar原创 2017-02-28 01:42:59 · 372 阅读 · 0 评论 -
BZOJ 1024: [SCOI2009]生日快乐 dfs
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1024题意:题解:http://www.cnblogs.com/ljh2000-jump/p/6063364.html 直接搜索每次横着切还是竖着切,同时均分成多少块。因为每个人的面积相等,所以注意一下,切成两半后必须要保证两边分成的块数之比要等于面积之比,仔细想想就可以想通了因为对于当前长原创 2017-02-28 00:34:33 · 744 阅读 · 0 评论 -
Codeforces Gym 100650C The Game of Efil DFS
题目链接:http://codeforces.com/gym/100650/attachments题意:每个细胞如果四周细胞太少了,就会孤独而死,如果细胞周围细胞太多了,就会挤死。给你个布局,问你他的上一代布局会有几种。不过这道题的关键在于wrap around这个词,即边界是循环的。题解:数据范围很小,n*m<=16,所以直接dfs出所有的状态 然后再check代码:#include <bits原创 2017-02-27 20:39:56 · 307 阅读 · 0 评论 -
Codeforces Round #297 (Div. 2)E. Anya and Cubes 折半搜索
题目连接:http://codeforces.com/contest/525/problem/E题意:n个数,k个魔法棒,s为所求的数,然后让你找有多少种方法,能够使的这n个数之和为s,其中一个魔法棒可以使的一个数变成他的阶乘。题解:第一种:http://blog.youkuaiyun.com/weizhuwyzc000/article/details/50043151 对于每一层,有3种决策: 不选这个数,原创 2017-02-25 17:34:55 · 285 阅读 · 0 评论 -
Codeforces ZeptoLab Code Rush 2015 B. Om Nom and Dark Park DFS
题目链接:http://codeforces.com/contest/526/problem/B题意:n表示几层边 使从根走到每个叶子所要的花费都相同,问最少得增加多少边权?题解:把每个点与父节点的边 和 这个点 编号相同, 这样就使得每条边的编号是它儿子的编号的2倍 DFS,自底往上,预处理前缀和 然后ans加上左右叶子的差值,然后一直跑DFS就是了代码:#include <bits/std原创 2017-02-25 18:57:37 · 298 阅读 · 0 评论 -
洛谷1462 通往奥格瑞玛的道路 二分+spfa
题目链接:https://www.luogu.org/problem/show?pid=1462题意:题解:二分法+最短路判定。二分经过城市的最大费用w,然后判定:对于每一个费用大于w的城市标记为不可达,求最短路径,判断最短路与血量的关系即可。如果一个城市不可达可以在SPFA算法开始前将inq置为1。小的优化:把f值从小到大排序,对f值进行二分就可以了。代码:#include <bits/stdc+原创 2017-03-08 15:15:35 · 401 阅读 · 0 评论 -
hdu 4499 Cannon dfs
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4499题意:在一个象棋棋盘上放炮,要求两个炮不能互相打到,然后问你最多能放几个炮题解:dfs 一直dfs到最后一行最后一列 就可以 每个点只往上和往左扫了 vis[x][y]= 0 表示这个点没有棋子 1表示 普通的棋子 2表示 炮代码:#include <bits/stdc++.h>using n原创 2017-02-26 20:01:46 · 309 阅读 · 0 评论 -
cdoj 15 Kastenlauf dfs
题目链接:http://acm.uestc.edu.cn/#/problem/show/15题意:n+2个点,要求每个点之间的距离小于等于1000就可以走过去,然后问你能否从1走到n+2题解:dfs代码:#include <bits/stdc++.h>using namespace std;typedef long long ll;#define MS(a) memset(a,0,sizeof原创 2017-02-26 18:38:07 · 288 阅读 · 0 评论 -
hdu5254 棋盘占领 dfs
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5254题意:题解:暴力代码:#include <bits/stdc++.h>using namespace std;typedef long long ll;#define MS(a) memset(a,0,sizeof(a))#define MP make_pair#define PB pus原创 2017-02-26 15:18:13 · 234 阅读 · 0 评论 -
zoj 3620 Escape Time II dfs
题目链接:题意:题解:代码:原创 2017-02-26 15:00:33 · 274 阅读 · 0 评论 -
CDOJ 215 吴队长征婚 DFS+剪枝
题目链接:http://acm.uestc.edu.cn/#/problem/show/215题意:题解:http://www.lai18.com/content/7765203.html 剪枝1:大木棍长度只可能是sum的约数 剪枝2:重复的木棍就可以不用枚举了 剪枝3:每次都从最长的开始枚举代码:#include <bits/stdc++.h>using namespace std;t原创 2017-02-26 13:21:51 · 516 阅读 · 0 评论