用算法求最大生成树,在并查集合并时,把原本的一个根连向另一个 根改成两个根都连向一个新建的节点,并把当前正在处理的边的权值赋给这个新 节点做点权。这样形成的结构会是一棵树。 一个点的答案大致上是树的根到自己的路径上,相邻两个节点的子树叶节点 数的平方和。需要注意的是父子两个节点权值相同的情况,这个部 ...
分类:
其他好文 时间:
2019-02-14 22:06:30
阅读次数:
182
[题目链接] https://www.luogu.org/problemnew/show/P4899 [算法] 建出原图的最小/最大生成树的kruskal重构树然后二维数点 时间复杂度 : O((N+Q)logN) [代码] ...
分类:
其他好文 时间:
2019-02-14 00:11:56
阅读次数:
156
qwq 这题是知道了正解做法才写的.. 求每两点间最小权值最大的路径,本来我以为要每个点都跑一遍dij(?),后来意识到生成树好像是用来找这个的( ´▽`) 然后我问dtxdalao对不对,他说“我记得这道题好像要用倍增”(我:???剧透会被关进小黑屋的) 其实就是最大生成树是随便建的,然后对于每两 ...
分类:
其他好文 时间:
2019-02-07 09:31:45
阅读次数:
200
思路: 首先是要建最大生成树,不难发现,对于两点$u,v$,如果$u v$中最小的边的权值最大,那么这条路径$u v$一定在最大生成树上。 考虑用$Kruskal$建最大生成树,那么首先对边按照从大到小进行排序。 然后用并查集维护两个点的联通性,如果$u$与$v$不在同一个并查集中就合并,注意到合并 ...
分类:
其他好文 时间:
2019-01-28 23:09:27
阅读次数:
217
同样是LCT维护一个类似最大生成树的东西。 题目链接: "戳我" emmm其实我在uoj上过不去,加的数据我TLE了。。。。。。 关于push_up的小trick:初始化的时候给0节点也初始化成最大值,然后push_up的时候不用管自己的左右儿子是否为空,直接返回左右儿子中比较小的一个就可以了,然后 ...
分类:
其他好文 时间:
2019-01-18 23:14:04
阅读次数:
203
题目描述 题解 唉,还是码力不行,写了一个多小时发现想错了又重构了一个多小时。 这道题意图很显然,动态维护联通块,有一个经典做法就是用LCT维护按照删除时间维护的最大生成树。 网上还有一种神奇的做法,线段树套并查集,蒟蒻表示不懂。。 这道题可以利用并查集操作可以撤销这种性质来做。 线段树分治 线段树 ...
分类:
其他好文 时间:
2018-12-23 20:01:10
阅读次数:
181
[toc] 12.23 真不知道怎么想的,记录刷题记录和流水账,把以前几篇粘到这。。。 12 21 T1 SD DP 我怎么连这么煞笔的普及组DP都不会做了,完了完了,降智严重. f[i]表示前i个人,到0层的最小时间. 然后枚举一次电梯多少个人就完了.用线段树维护一下,完了. T2 不懂 T3 不 ...
分类:
其他好文 时间:
2018-12-23 19:34:23
阅读次数:
176
UVALive 6807 https://vjudge.net/problem/UVALive 6807 蛮神奇的题目,考虑选的边的在原图中的补集,会发现,没有环出现,那么这是一张无向无环图,也就是一棵树.转化为$\sum w_i \sum k_i$ $k$为在树上的边权,所以直接求一发最大生成树就 ...
分类:
其他好文 时间:
2018-12-19 20:49:01
阅读次数:
132
Description 给出N个顶点、E条边的连通无向简单图,请你完成下列任务: 任务1、求边权和最小的生成树(最小生成树) 任务2、求边权和最大的生成树(最大生成树) 任务3、求最大边最小的生成树(瓶颈生成树) 任务4、求最小边最大的生成树(瓶颈生成树) Input 第一行:两个整数N,E(N O ...
分类:
其他好文 时间:
2018-11-30 17:30:13
阅读次数:
236
不知道为什么要把这两个没什么关系的算法放到一起写...可能是都很黑科技? 1.线段树分治 例题:bzoj4026 二分图 给你一个图,资瓷加一条边,删一条边,询问当前图是不是二分图 如果用 LCT 的话我们要维护关于删除时间的最大生成树,然后每进来一条边判断奇环,就很难写 线段树分治可以很好的解决这 ...
分类:
其他好文 时间:
2018-11-28 22:08:08
阅读次数:
219