![](https://img-blog.csdnimg.cn/20190918140158853.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
最小生成树
文章平均质量分 50
看起来很简单的算法,很多神奇的题正解都是转化为最小生成树的模型
wind__whisper
qwq
展开
-
P5327 [ZJOI2019]语言(线段树合并、生成树)
解析只会扫描线树剖的三只log(悲考虑对每个 uuu 考虑合法的 vvv 的集合,必然是一个联通块。进一步的,观察到这个联通块就是由所有经过 uuu 的路径的端点形成的最小生成树。我们有一个最小生成树的经典结论:最小生成树边权和等于按dfs序排列成圆后邻项距离和除以二,不难发现可以线段树维护。把所有路径做一个树上差分,再结合线段树合并,即可进行求解了。用欧拉序 st 表 O(1)O(1)O(1)求LCA,总复杂度 O((n+m)logn)O((n+m)\log n)O((n+m)logn)代原创 2022-05-27 11:38:56 · 126 阅读 · 3 评论 -
P5039 [SHOI2010]最小生成树(网络流)
最小割原创 2022-04-12 22:07:43 · 211 阅读 · 0 评论 -
不止代码:路径数量(ybtoj-最小生成树)
题目描述解析乍一看:是个水题啊!显然如果途径存在强连通的点,路径就会变为正无穷所以缩点加拓扑dp以及一些特判应该就可以解决了!一交:40分。。。然后就开始拆东墙补西墙的debug。。。de到80之后实在无计可施,看了测试数据最终在交了10余次后切掉了本题(泪目)总结一下遇见的问题吧:1.是所以超过36500的点视为相等,而不是有超过36500的点就全部认为相等!(gg:省选的亏还是没吃够啊。。。)2.判断强连通特判的位置应该在topu的while大循环的里面而不是判断出边的地方(如原创 2021-04-21 22:51:09 · 125 阅读 · 0 评论 -
不止代码:保留道路(ybtoj 最小生成树)
文章目录题目描述解析代码thanks for reading!题目描述解析其实就是修建道路我一开始只能想到枚举g去跑最小生成树是m^2的算法(50pts)但是其实每次加入的边只有一条而且之前都不在最小生成树上的边以后也肯定不会在所以可以建一个新的边的集合存当前生成树的边这个集合的边最多只有n条这样复杂度就降为n*m可以通过本题代码#include <bits/stdc++.h>#define ll long longusing namespace std;con原创 2021-04-18 00:46:24 · 179 阅读 · 0 评论