搜索 / DFS / BFS
文章平均质量分 73
BraketBN
这个作者很懒,什么都没留下…
展开
-
【SPOJ-ABCPATH】ABC Path【BFS/DFS】
题意:n×m的格子,每个格子有一个大写英文字母,每个格子可以沿着八个方向走。问图中最长的从A开始的字母序列(ABCD...)的长度是多少。搜索...注意写vis标记,否则容易炸。#include #include using namespace std;const int maxn = 55, maxq = 10000;int n, m, g[maxn原创 2016-02-24 22:24:20 · 1085 阅读 · 0 评论 -
【BZOJ1194】[HNOI2006]潘多拉的盒子【BFS】【SCC】【拓扑排序】【DAG最长路】【自动机】
【题目链接】这题有毒orz。判断两个自动机是否有升级关系,BFS一次就行了orz。两个自动机都从0开始,同时走0,同时走1。如果一个自动机到达输出点,而另一个没到达,那么没有升级关系。然后根据升级关系建图,Tarjan缩点,然后跑DAG上最长路就行了。注意一个强联通内都是互相有升级关系的,跑最长路时要取size而不是取1,WA了一发.../* Pigonomet原创 2016-04-23 17:15:33 · 854 阅读 · 0 评论 -
【BZOJ3302】[Shoi2005]树的双中心【DFS】【TreeDP】
【题目链接】考虑暴力做法,我们可以枚举删掉某条边,然后在两个子树里找重心,统计答案即可,O(n^2)的。发现树高最多100,并且发现每次转移只可能向着权值和更大的地方移动,那么我们可以记录出每个节点权值和最大的儿子。但是如果删掉一条边的时候,把这个儿子给归到另一个子树里了,所以我们还得记录次大权值和的儿子。复杂度O(nh)。设sum[x]表示x的子树中的权值和。设res原创 2016-04-04 11:15:27 · 1632 阅读 · 2 评论 -
【BZOJ2103】【BZOJ2447】Fire 消防站【DFS】【TreeDP】
【题目链接】 【题目链接】同【BZOJ3302题解】/* Pigonometry */#include #include using namespace std;typedef long long LL;const int maxn = 50005, inf = 0x3f3f3f3f;int n, head[maxn], cnt, pre[maxn], depth[原创 2016-04-04 11:33:01 · 762 阅读 · 0 评论 -
【BZOJ4325】NOIP2015 斗地主【搜索】【剪枝】
【题目链接】除过顺子的那些带牌和单打,可以直接算出来,得到一个答案的上界。搜索时候只要找顺子,顺带剪几个枝就行了。交上去rank1,吓傻。/* Pigonometry */#include #include #include using namespace std;const int maxn = 18;int n, a[maxn], cnt[5],原创 2016-04-15 14:03:09 · 2199 阅读 · 0 评论 -
【BZOJ3629】[JLOI2014]聪明的燕姿【质因数分解】【暴搜】
【题目链接】有点神奇。膜拜一发【wulala的题解】/* Footprints In The Blood Soaked Snow */#include #include #include using namespace std;typedef unsigned long long ULL;const int maxn = 50005;int n, cnt, p原创 2016-03-28 16:10:34 · 547 阅读 · 0 评论 -
【BZOJ1024】[SCOI2009]生日快乐【搜索】
【题目链接】注意“要求每个人必须获得相同面积的蛋糕”,且n 对于一块蛋糕,切割点必须是均匀分布的,如果已知了要切割多少份,那么切割点的位置是可以算出来的。所以我们可以枚举切成的两块小蛋糕包含多少份。大暴搜就行了。/* Footprints In The Blood Soaked Snow */#include #include using namespace s原创 2016-03-28 08:44:43 · 308 阅读 · 0 评论 -
【BZOJ1054】[HAOI2008]移动玩具【BFS】【Hash】
【题目链接】大暴搜...hash去重一下就行。搜到答案时候直接输出是因为BFS时队列前的状态步数是最小的。/* Footprints In The Blood Soaked Snow */#include #include using namespace std;const int maxn = 7, maxq = 1 << 17, inf = 0x3f3f3f3f;c原创 2016-03-27 22:15:28 · 472 阅读 · 0 评论 -
【SPOJ-PT07Z】Longest path in a tree【DFS/BFS】【树的直径】
题意:求树的直径。先从任意一点DFS,找到深度最大的点,这个点一定是树的直径的一个端点(可以反证法证明),然后从该点DFS找到另一个端点。#include #include using namespace std;const int maxn = 10005;int n, head[maxn], cnt, depth[maxn];struct _edg原创 2016-02-25 18:29:55 · 873 阅读 · 0 评论 -
【BZOJ2246】[SDOI2011]迷宫探险【搜索】【概率DP】
【BZOJ2246】最后一组数据没过,也不知道啥原因,打了发表(pia)大体思路是,先搜索出每个状态下每个陷阱有害的概率,然后就可以跑dp了。搜索时,每个陷阱有三种状态,0无害,1有害,2未遍历。那么用一个三进制来表示状态。搜索到一种状态now,然后再枚举状态转移。设wx[now][i]表示当前状态为now,陷阱i有害的概率。设ww[i][0/1](是个临时数组原创 2016-04-03 09:31:06 · 1422 阅读 · 2 评论 -
【BZOJ1116】[POI2008]CLO【BFS】
【题目链接】同【这个题】/* Pigonometry */#include #include using namespace std;const int maxn = 100005, maxm = 200005, maxq = maxn;int n, m, head[maxn], cnt, q[maxq];bool vis[maxn];struct _edge原创 2016-04-01 09:01:04 · 384 阅读 · 0 评论 -
【Codeforces659E】New Reform【BFS】
【题目链接】题意:给出一个n个点,m条边的无向图,现在你可以任意规定每个边的方向,使得这个图变为有向图,要求入度为0的点尽量少。仔细分析一下就看出来了。如果一个连通块里有n - 1条边,即一棵树,那么答案为1。如果大于n - 1条边,那么可以在环上选一个起点规定方向,那么答案为0。BFS一次就好了。/* Footprints In The Blood Soaked原创 2016-03-31 22:45:49 · 455 阅读 · 0 评论 -
【BZOJ1016】[JSOI2008]最小生成树计数【最小生成树】【搜索】
【题目链接】参考了【hzwer的题解】orz要利用最小生成树的性质:对于所有的最小生成树,边权相等的边出现次数都相同。/* Footprints In The Blood Soaked Snow */#include #include using namespace std;const int maxn = 105, maxm = 1005, p = 31011;i原创 2016-03-31 16:40:39 · 345 阅读 · 0 评论 -
【BZOJ2208】[Jsoi2010]连通数【BFS/DFS】【SCC】
http://www.lydsy.com/JudgeOnline/problem.php?id=2208tarjan缩点然后dp。但是发现点数才2000...BFS可过。边数是n^2,不是n /* Footprints In The Blood Soaked Snow */#include using namespace std;const int m原创 2016-03-19 14:34:21 · 434 阅读 · 0 评论 -
【BZOJ1064】[Noi2008]假面舞会【DFS】【分类讨论】
【题目链接】以为要分层图...没思路,去看题解,膜拜proverbs【proverbs的题解】/* Footprints In The Blood Soaked Snow */#include #include using namespace std;const int maxn = 100005, maxm = 1000005;int n, m, head[max原创 2016-03-28 17:52:22 · 419 阅读 · 0 评论 -
【BZOJ1085】[SCOI2005]骑士精神【搜索】【剪枝】
【题目链接】大暴搜。加个剪枝,如果当前棋盘与目标棋盘相差超过限定步数,那么肯定不行了。注意要保证步数最小,所以要从小到大枚举步数。/* Footprints In The Blood Soaked Snow */#include #include #include using namespace std;const int maxn = 7;int ans原创 2016-03-29 17:27:38 · 657 阅读 · 0 评论 -
【BZOJ1098】[POI2007]办公楼biu【BFS/DFS】【链表优化】【补图】
求补图的联通块个数...发现链表原来还可以这么玩...听说DFS会超时。/* Footprints In The Blood Soaked Snow */#include #include using namespace std;const int maxn = 100005, maxm = 2000005, maxq = maxn;int n,原创 2016-03-04 20:51:16 · 1048 阅读 · 0 评论 -
【BZOJ1072】[SCOI2007]排列perm【暴搜】
【题目链接】似乎std是状压?算了下O(Tn!)的确可以过,敲了一发,真过了.../* Footprints In The Blood Soaked Snow */#include #include #include using namespace std;typedef unsigned long long ULL;typedef unsigned int uin原创 2016-03-29 14:33:51 · 521 阅读 · 0 评论 -
【BZOJ3522】[Poi2014]Hotel【DFS】
【题目链接】NOIP2014D1T2是从这个题改的吧。。题解:首先可以发现,满足条件的点对一定是“有一个中心点,三个点到中心点的距离相等,且三个点分别在不同子树中”这种情况。那么枚举中心点,然后遍历子树,统计答案。d[i]为临时数组,表示当前子树中深度为i的点有多少个。d1[i]表示,当前点已经遍历过的子树中,深度为i的点有多少个。d2[i]表示,当前点已经遍历过的子树原创 2016-05-31 16:05:57 · 911 阅读 · 0 评论