![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
最小生成树
Michael_GLF
AFOing
展开
-
BZOJ3754 Tree(最小方差生成树)
传送门 【题目分析】 先说说自己在考场上YY出来的错误解法,但可以过后面几个数据密度大的点。 将所有边按权值存入各自的vector中,然后一个一个的枚举,因为要标准差最小所以边权要尽可能的集中所以记录两个指针,优先跳差值小的一边。 因为到最后边数上万,但边权小于等于100,所以可能一个集合就差不多能将整个图覆盖,所以靠着这个方法过了最后6个点。 然而这个很容易找反例,所以咕了。 观察标...原创 2019-02-16 11:24:32 · 270 阅读 · 0 评论 -
洛谷4180 【模板】严格次小生成树(最小生成树+树链剖分)
传送门 【题目分析】 首先明确一点:严格次小生成树与最小生成树有且只有一条边不同。 证明比较显然,自己画画图就行了,因为能替换的一定会构成一个环,依据这个就可以推出来。 同样,根据上面这个结论,我们可以枚举所有边,如果这条边不在生成树上,那么如果将这条边加入生成树中一定就会构成一个环,这时候只用将环上最大边删去即可,但考虑到严格次小生成树并且最大边可能与当前边权值相同,所以还要记录次大值。...原创 2019-02-06 17:30:05 · 458 阅读 · 0 评论 -
BZOJ2654 tree(二分+最小生成树)
传送门 【题目分析】 总感觉题目似曾相识的样子qwq。 其实二分的思路还是很好想的,初始状态无非就是在生成树中的白边的数量>需要的数量和<需要的数量,前者需要减少白边数量加黑边,后者相反。 减少白边相当于将白边的权值整体加一个值,增加就相当于减少一个值,就这样做最小生成树,最后因为恰好是need条白边所以权值一定就是(生成树权值-need*整体加的值) 【代码~】 #in...原创 2019-02-01 20:10:36 · 243 阅读 · 0 评论 -
BZOJ2238 mst(最小生成树+树链剖分)
传送门 【题目分析】 树剖好题。 首先按题意做出最小生成树,如果做不出,那么所有询问都是"Not connected"。 同样,如果删的是非生成树上的边,对答案不会造成影响,直接输出最小生成树的权值即可。 那么考虑生成树上的边被删的情况: 很明显,对于一个环上的所有边,如果删掉一条,剩下的点仍然会保持联通。 所以这个环上的所有边都是可以互相替代的。 按照这个思路,我们将所有非生成树...原创 2019-01-21 10:55:05 · 453 阅读 · 0 评论 -
NOIP模拟 迅雷(最大生成树)
传送门 【题目分析】 emmm,一眼题我还能说啥? 直接做最大生成树,只要连接的两个联通块一个有电脑一个有服务器就直接返回边的值就行了。 数据出锅差评 【代码~】 #include<bits/stdc++.h> using namespace std; const int MAXN=1e5+10; const int MAXM=2e5+10; int n,m,y,p,c...原创 2019-01-20 14:29:47 · 194 阅读 · 0 评论 -
BZOJ3732 Network(最小生成树+树链剖分)
传送门 【题目分析】 首先是要最大路径最小,那么很容易想到可以用最小生成树来实现,留下最小的n-1条边,保证了图的联通。 然后我们就得到了一颗最小生成树,要询问任意两点路径最大值,就是树链剖分维护就好了。 整体较板,但注意做最小生成树的时候因为一开始我存了双向边结果一排序就T的飞起,所以注意最小生成树的边并不用双向,做kruskal连边的时候才建双向边。 【代码~】 #include...原创 2018-12-15 14:51:35 · 200 阅读 · 0 评论 -
NOIP模拟 Minimum(最小生成树)
T2:Minimum 【题目描述】 给出一幅由n个点m条边构成的无向带权图。 其中有些点是黑点,另外的是白点。 现在每个白点都要与他距离最近的黑点通过最短路连接(如果有很多个,可以选取其中任意一个),我们想要使得花费的代价最小,请问这个最小代价是多少。 注意:最后选出的边保证每个白点到黑点的距离仍然是最短距离。 【输入格式】 第一行两个整数 n...原创 2018-08-03 10:20:37 · 256 阅读 · 0 评论