
搜索:DFS/BFS/A*/IDA*
qpswwww
这个作者很懒,什么都没留下…
展开
-
[NOIP 2014复习]第二章:搜索
一、深度优先搜索二、广度优先搜索1、Wikioi 1004 四子连棋题目描述 Description 在一个4*4的棋盘上摆放了14颗棋子,其中有7颗白色棋子,7颗黑色棋子,有两个空白地带,任何一颗黑白棋子都可以向上下左右四个方向移动到相邻的空格,这叫行棋一步,黑白双方交替走棋,任意一方可以先走,如果某个时刻使得任意一种颜色的棋子形成四个一线(包括斜线),这样的状态为目原创 2014-09-02 17:07:33 · 2963 阅读 · 1 评论 -
[Codeforces 535B]Tavas and Karafs
题目链接http://codeforces.com/contest/535/problem/B题目大意一个数为幸运数,当且仅当它的每一位要么是4,要么是7 求小于等于nn的幸运数个数思路水题。 由于n≤109n\leq 10^9,因此随便怎么暴力都可以,直接DFS爆枚所有在[1,109][1,10^9]内的幸运数,最多只有292^9个,非常少,然后判断每个幸运数是否小于等于nn,统计答案即可。注原创 2015-05-18 11:27:12 · 859 阅读 · 0 评论 -
[BZOJ 3872][POI 2014]Ant colony(BFS+二分)
题目链接http://www.lydsy.com/JudgeOnline/problem.php?id=3872思路很显然可以考虑倒着来搞,让蚂蚁从食蚁兽所在的两个点开始,倒着往回走,就能得到每个点上至少和至多有多少个蚂蚁,才能让食蚁兽所在的点刚好有kk个蚂蚁。这样就能在每个点得到一个区间。假如xx个蚂蚁这次在点tt,上一次在点t′t',则可以得到上一次蚂蚁的个数x′x'区间为 [max{degr原创 2015-05-07 17:30:03 · 997 阅读 · 0 评论 -
[POI 2012]Fibonacci Representation(记忆化DFS)
题目链接http://main.edu.pl/en/archive/oi/19/roz题目大意给出一个数字,用FIB数列各项加加减减来得到。例如 10=5+5 19=21-2 17=13+5-1 1070=987+89-5-1 TT次询问数字nn,问至少要加减多少次才能得到数字nn思路显然对于一个数字nn而言,我们要么对它减去一个最大的比nn小的数字,要么用一个最小的比它大的数字减去它来得原创 2015-05-14 19:00:42 · 1113 阅读 · 0 评论 -
[POI 2013]Tales of seafaring(BFS)
题目链接http://main.edu.pl/en/archive/oi/20/mor题目大意给定一张无向图,图中每条边边权均为1,多次询问是否存在一个长度为dd,从点xx到点yy的路径。思路注意到虽然询问次数非常多,但是点数和边数非常少。 考虑对询问进行排序,每次统一回答一些起点相同的询问。 注意到一条长度为dd的路径,可以通过反复走某条边,变成长度为d+2,d+4...d+2,d+4...的原创 2015-05-14 16:51:34 · 712 阅读 · 0 评论 -
[BZOJ 1509][NOI 2003]逃学的小孩(树的直径)
题目链接http://www.lydsy.com/JudgeOnline/problem.php?id=1509题目大意要从一棵树中找出三个点X,Y,ZX,Y,Z,使得min(dis[A][C],dis[B][C])+dis[A][B]\min(dis[A][C],dis[B][C])+dis[A][B]最大,求这个最大值思路大部分的做法都是基于枚举分叉点的树上DP。这种做法非常好想,但是还是有些难原创 2015-04-29 20:38:10 · 1017 阅读 · 0 评论 -
[Codeforces 460E][SCOI 2015集训]Roland and Rose(暴力乱搞)
题目链接http://codeforces.com/problemset/problem/460/E题目大意给你一个圆心(0,0)(0,0),要在坐标系上找nn个点,使得每个点距离圆心距离都在rr之内,点与点可以重合,求使得任意两点距离的平方和最大的nn个点该放在哪些地方。思路显然这nn个点一定是在(0,0)(0,0)为圆心的半径为rr的圆里面的所有点的凸包上。 由于题目范围很小,因此凸包上的点个原创 2015-04-15 08:58:39 · 1343 阅读 · 0 评论 -
[BZOJ 1853][SCOI 2010]幸运数字(容斥原理+DFS)
题目链接http://www.lydsy.com/JudgeOnline/problem.php?id=1853思路我们可以先求出[1,r][1,r]范围内形如6…68…86…6这样符合题意的数的升序序列AA,然后对于任意的i<j,Aj=kAii<j,A_j=kA_i,删去AjA_j,那么我们就能得到一个新的升序数列BB,在这个序列中,没有一个数是另一个数的倍数。 然后很显然就是容斥了,最终的答案原创 2015-02-26 10:22:19 · 799 阅读 · 0 评论 -
[BZOJ 2435][NOI 2011]道路修建
题目链接http://www.lydsy.com/JudgeOnline/problem.php?id=2435 大水题,无根树随便找个点当成根然后DFS出一个有根树,统计下每个子树的大小,然后扫一遍树边统计答案就OK了。本来可以做到1A的,没想到在int赋值给long long时还要加个强制转换,结果贡献2个WA,什么鬼啊,教训一定要切记!代码#include <stdio.h>#includ原创 2015-02-22 16:39:09 · 762 阅读 · 0 评论 -
[BZOJ 3680]吊打XXX(广义费马点、模拟退火搜索)
http://www.lydsy.com/JudgeOnline/problem.php?id=3680题目大意:求n个带质量的质点的重心,重心定义为与每个点的距离*点的质量之和最小的点。此题是ICPC Camp第一场Finals模拟赛中yyf神牛的D题解法,就是裸的模拟退火搜索,虽然说精度要求略有些苛刻(1e-3),不过在Finals模拟赛中yyf经过28次调整精度还能实现1e-6的精度原创 2015-02-02 07:41:18 · 980 阅读 · 0 评论 -
[BZOJ 1054][HAOI 2008]移动玩具(BFS+判重)
题目链接:http://www.lydsy.com:808/JudgeOnline/problem.php?id=1054#include #include #include #include #include #include #include #define MAXN 5using namespace std;mapvisit;int tmp[MAXN]原创 2014-12-05 20:03:31 · 1456 阅读 · 0 评论 -
[BZOJ 1085][SCOI 2005]骑士精神(IDA*搜索)
题目链接:http://www.lydsy.com:808/JudgeOnline/problem.php?id=1085考虑到深度不超过15,IDA*搜索可做。估价函数h()=当前不在目标位置的棋子个数。然后其他细节就和普通的迭代加深一样了。#include #include #include #include #include using namespace std原创 2014-12-05 21:14:56 · 1062 阅读 · 0 评论 -
[HDU 1427]速算24点(DFS暴搜)
题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=1427思路:简单的DFS,dfs(sum,next,p)表示当前已经算出的值是sum,括号中算出的值是next,当前使用的卡片下标为p,实际上是把括号外和括号内的两部分值分成sum和next来处理了。直觉告诉我们4个数只需要一层括号参与运算就够了,不会也不必用多重括号改变运算顺序,因原创 2014-10-15 21:47:44 · 1444 阅读 · 0 评论 -
关于暴力&瞎搞骗分的一些实例
dd原创 2014-10-28 11:38:27 · 3064 阅读 · 0 评论 -
[NOI 2015复习][BZOJ 1509][NOI 2003]逃学的小孩(树的直径)
题目链接http://www.lydsy.com/JudgeOnline/problem.php?id=1509题目大意要从一棵树中找出三个点X,Y,ZX,Y,Z,使得min(dis[A][C],dis[B][C])+dis[A][B]\min(dis[A][C],dis[B][C])+dis[A][B]最大,求这个最大值思路可以发现,min里头的两个东西具体取哪个并不重要,或者说点C距离A更近还是原创 2015-07-13 10:25:27 · 1743 阅读 · 0 评论