Icefox的博客

生活不止眼前的苟且,还有诗和远方。

bzoj4195 [Noi2015]程序自动分析(并查集+Hash表)

并查集小水题~ 需要Hash表/map/离散化一下 一开始没排序…sb了。。。 #include <bits/stdc++.h> using namespace std; #define ll long long #define inf 0x3f3...

2018-06-25 13:18:53

阅读数 48

评论数 0

uoj236 【IOI2016】railroad(欧拉图+最小生成树)

首先我们对每一个速度建一个点,然后对于每一个路段(s,t),建边s->t。这样我们就是求可以在这张图中添加一些边,要求经过每条边恰好一次。 我们添加一条(inf,1)的边,这样就是要求把这张图变成欧拉图。 考虑这样一个区间[x,x+1][x,x+1][x,x+1] , 只...

2018-06-20 21:54:13

阅读数 321

评论数 0

bzoj3624 [Apio2008]免费道路(图论+并查集)

我们首先把必须加入的0边加进去(把所有1边全加进去,然后此时还能加进去的0边就是必须加的0边) 如果必须加的0边个数>K则无解。否则继续加0边直到K条。 如果加不到K条也无解。然后再加1边,能加就加进去即可。 不连通也是无解。 解决。 #include &a...

2018-06-16 14:00:39

阅读数 51

评论数 0

bzoj3007 拯救小云公主(二分答案+并查集)

二分答案以后就是不能经过若干圆,能否从(1,1)走到(n,m) 只要(1,m),(n,1)不连通即可。 并查集维护一波即可。 复杂度O(n2logw)O(n2logw)O(n^2logw) #include <bits/stdc++.h> usi...

2018-06-13 23:05:39

阅读数 175

评论数 0

CF986C AND Graph(按位+图论)

给定一个大小为m的集合,每一个数都是0 ~ 2n−12n−12^n-1的,如果两个数x,y满足x&y==0就连一条无向边,问这m个数连成的图有多少个连通块。 考虑x&y==0,那么x一定是~y的子集。于是枚举并查集维护连通性即可。 然而复杂度很要...

2018-05-31 11:04:42

阅读数 594

评论数 0

bzoj4229 选择(lct+并查集维护边双)

倒着做,加边,维护边双。 lct+并查集。类似:portal 见一次不会一次系列qaq

2018-04-27 14:52:36

阅读数 122

评论数 0

bzoj4569 [Scoi2016]萌萌哒(并查集+倍增)

考虑暴力做法,就是每次把对应位置都用并查集合并了。最后答案就是9*10^(连通块个数-1)。然而这样太暴力了,怎么优化呢? 我们考虑倍增的思想,用id[j][i]这个点表示j…j+(1< < i)-1这一段。我们每次合并两个对应区间时,变成合并logn个对应区间。 最后再从上往下推...

2018-04-27 09:38:20

阅读数 138

评论数 0

bzoj1077 [SCOI2008]天平(并查集+暴力)

首先把有相等关系的都并成一个,方便讨论。 然后直接O(n2)O(n^2)暴力处理出每一个点的取值范围。 如果既有前驱又有后继,那这个点一定是2,然后暴力更新其他已知点。 未更新值的点可能有多种取值,根据连边关系限定。 然后暴力枚举C,D,以及A,B,C,D的取值,判断是否合法。以及是否答案...

2018-04-21 22:42:49

阅读数 105

评论数 0

CF455C Civilization(树的直径+并查集)

首先求出每个连通子树的直径,注意记在根上,可以有向的合并。 然后就是并查集了。合并两个连通子树,使得新直径最小,考虑新直径如果横跨两块,则最优的显然是把两块的直径中点连起来。 所以合并之后直径的最小值就是max(max(d1,d2),(d1+1)/2+(d2+1)/2+1)

2018-04-14 21:52:17

阅读数 94

评论数 0

CF763E Timofey and our friends animals(线段树+并查集/lct+BIT/瞎搞)

官方正解给的是线段树+并查集,好毒瘤呀!写的我心神俱疲呀orz 我是每个节点维护左边K个点和右边K个点的连通性,还有连通块的个数。然后每次合并两个节点的时候,就暴力枚举K^2条边来并查集维护。再更新对结果的l和r。然后每次查询的时候就直接合并logn个节点即可。当节点的区间长度不足k时太毒瘤啦!...

2018-03-15 11:40:12

阅读数 659

评论数 0

bzoj5188 [Usaco2018 Jan]MooTube(离线+并查集)

给定一棵n个点的树(n=1e5),有边权, 两点间距离定义为两点路径上的 边权最小值。m个询问(m=1e5),k,v, 询问对于点v,距离>=k的点有多少个(不含v) 离线+并查集,按k从大到小做, 此时与v连通的所有点均为答案。#include <cstdio> #i...

2018-03-13 09:27:22

阅读数 432

评论数 0

bzoj5194 [Usaco2018 Feb]Snow Boots(离线+贪心+并查集)

都按S排序以后,每次把不能走的染黑,如果任意一段连续的黑色个数小于< d的话我就可以通过,否则不行。可以用并查集来维护最大子段和。复杂度O(nlogn)#include <cstdio> #include <cstring> #include <algorith...

2018-03-04 14:37:58

阅读数 327

评论数 0

USACO2018FEB Gold

A.snowboots(离线+贪心+并查集) 都按S排序以后,每次把不能走的染黑,如果任意一段连续的黑色个数小于< d的话我就可以通过,否则不行。可以用并查集来维护最大子段和。复杂度O(nlogn)O(nlogn)B.dirtraverse(树+搜索+递推) 首先处理出选1做当前目录的答...

2018-02-26 15:56:17

阅读数 501

评论数 0

hdu3726 Graph and Queries(离线+平衡树启发式合并)

我们把操作离线,删边操作就变成了合并。每个连通块维护一棵splay,合并时把sz小的暴力插到sz大的里面去即可。复杂度O(nlog2n)O(nlog^2n),为什么呢,因为一个点x被暴力插入一次,则它的sz至少大了一倍,所以一个点最多暴力插入logn次。 tips:ins之后要转到跟呀转到跟!

2018-02-24 14:16:42

阅读数 173

评论数 0

bzoj4998 星球联盟(lct+并查集)

做完bzoj2959,再做这道题就显得比较简单了。我们要维护一个边双联通分量大小。用并查集来缩点即可。

2018-02-17 17:56:16

阅读数 191

评论数 0

bzoj2959 长跑(lct+并查集)

一个边双联通分量中的点我们是可以都取走的。于是我们把边双联通分量缩成一个点,那么我们就得到了一个森林,每次询问就相当于是求树上路径权值和。至于如何缩双联通,我们用并查集来缩。find2(fa2[x])表示x缩完环以后真正的点。再用一个并查集fa1来维护一下原图的连通性。每次加边无非三种情况: 1...

2018-02-17 17:27:49

阅读数 232

评论数 0

bzoj2733 [HNOI2012]永无乡(并查集+线段树合并/启发式平衡树合并)

每个连通块维护一棵权值线段树即可。动态开点,查询时去线段树上爬即可。然后每次合并集合的时候把线段树也合并了。关于线段树合并:传送门 upd:也可以启发式合并平衡树,每次把sz小的直接塞到sz大的中去。 线段树合并 #include &amp;lt;cstdio&amp;g...

2018-02-14 16:51:44

阅读数 182

评论数 0

bzoj3669 [Noi2014]魔法森林(并查集+lct)

把所有边按a值从小到大排序。不断往里加边,维护连通性,如果成环,查询目前x,y路径上的b的最大值,如果我当前边的b比最大值还大,则肯定不往里加。否则替换掉最大的b值那条边,连通性不变。如果1和n已经联通,就更新答案,用目前1,n路径上的b的最大值+当前边的a值来更新。这样为什么是正确的呢?考虑你这...

2018-01-31 18:13:47

阅读数 235

评论数 0

bzoj1180 [CROATIAN2009]OTOCI(lct)

因为没有删边操作,可以直接拿并查集维护连通性。为啥不能直接带权并查集呢?因为还有修改点权。 #include #include #include using namespace std; #define ll long long #define inf 0x3f3f3f3f #define...

2018-01-31 17:14:55

阅读数 154

评论数 0

uoj79 一般图最大匹配(带花树)

写着感觉好麻烦呀。。。心力交瘁。。。大概就是缩花,花套花想想就迷。。。推荐几个学习的好地方: http://www.csie.ntnu.edu.tw/~u91029/Matching.html 2015 年中国国家队候选队员论文集,陈胤伯,《浅谈图的匹配算法及其应用》

2018-01-27 18:07:08

阅读数 217

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭