题意: 一棵n个节点的树,节点有黑白两种颜色,初始均为白色。两种操作:1.更改一个节点的颜色;2.询问一个节点所处的颜色相同的联通块的大小。 思路: 1.每个节点记录仅考虑其子树时,假设其为黑色时所处的黑色联通块的大小和假设其为白色时所处的白色联通块的大小(树状数组维护)。 2.查询时找到深度最小的 ...
分类:
其他好文 时间:
2017-07-16 11:15:39
阅读次数:
279
题意: n个点,有加边操作,询问与某一点处于相同的联通块的点中权值第k大的点 思路: 对所有点建立一棵权值线段树,加边就配合并查集进行线段树合并 反思: 动态开点,权值线段树要用sum[g[x=find(x)]](还是不够熟练),g为根。 代码: ...
分类:
其他好文 时间:
2017-07-16 09:51:33
阅读次数:
128
今天的题目可说的地方不多。 T1:CF上有原题,题意是固定某点求此点所在联通块方案数。 我输了n行,题目要求输出一行。 T2:环的大小不超过5的非连通图求最长不可重路径。 tarjan没有注意到非联通图的情况,全挂了,否则得60。 如果在DFS的时候别搞事情就A了。 T3:公式推得没什么问题,但没想 ...
分类:
其他好文 时间:
2017-06-27 18:51:49
阅读次数:
133
传送门 每个联通块看成一个整体,然后做个背包就好啦。 1 #include<cstdio> 2 #define N 10001 3 #define repu(i,x,y) for(i=x;i<=y;i++) 4 #define max(a,b) (a>b?a:b) 5 struct edge{ 6 ...
分类:
其他好文 时间:
2017-06-14 18:18:03
阅读次数:
208
题目链接 不知道怎么该评价这道题……首先题目给的形式就很坑,很大程度上变成了一个模拟题。实际上就是求初始联通块个数。答案即为联通快个数-1. ...
分类:
其他好文 时间:
2017-06-12 17:09:26
阅读次数:
250
OJ题号:洛谷1196 思路:加权并查集。 对于每个联通块,记录最后(权值最大)的“战舰”。然后按照加权并查集的基本套路合并。最后输出两艘“战舰”权值之差。 ...
分类:
其他好文 时间:
2017-06-09 21:28:23
阅读次数:
231
OJ题号:BZOJ1202、洛谷2294 思路:加权并查集。 每次将给出的区间[x-1,y]对应的v与w[y]-w[x]比较,如果与已知条件冲突则为假账单。如果条件未知加入并查集中,并维护一个类似于前缀和的东西w,对于每个联通块,w[i]表示从anc[i]到i的账目。 ...
分类:
其他好文 时间:
2017-06-02 22:06:58
阅读次数:
172
题目大意: 给定n个点m条边的无向图。求问当图中仅仅有【编号在[l,r]区间内】的边存在时图中的联通块个数 强制在线 注意联通块是指联通了就是同一块,不是Tarjan求的那种块 看到这题的那一刻我就想小便有木有0.0 这尼玛怎么做?可持久化并查集? 暴力? 分块乱搞? 。。。 后来看了HZWER大神 ...
分类:
其他好文 时间:
2017-05-29 21:06:04
阅读次数:
180
题目大意:给出一棵树。将树中的一个节点去掉之后,这棵树会分裂成一些联通块。求去掉哪些点之后。全部联通块的大小不超过全部节点的一半。并按顺序输出。 思路:基础的子树统计问题,仅仅要深搜一遍就能够出解。这个步骤和求树的重心非常像,是树分治的基础。 CODE: #include <cstdio> #inc ...
分类:
其他好文 时间:
2017-05-20 14:25:59
阅读次数:
88
Electricity poj上的一道割点的题。 题目大意就是求删去一点后,形成的联通块的最大值。 思路: 先求该图的割点。 如果删除的点是割点的话,需要分类讨论: 1.这个点是割点并且是根节点,那么增加的联通块就是树中的子节点数-1。 2.如果是割点但不是根节点,增加的联通块数就是搜索树中满足lo ...
分类:
其他好文 时间:
2017-05-12 22:02:30
阅读次数:
145