最小生成树
616156
赛高______↑
展开
-
【最小生成树】IOI2003maintain
题目描述在一个初始化为空的无向图中,不断加入新边。如果当前图连通,就求出当前图最小生成树的总权值;否则,输出-1。分析目前已知的算法中,破圈算法是最快的。 破圈算法顾名思义,把边按照输入顺序插入树中,如果该边的两端点在同一颗树里,再插入这条边一定会形成环。破圈算法就是把环上权值最大的边删去,就能够维持树的边权尽量小。//破圈算法yhn(找cch要对拍程序的时候用他的号交了一遍。。)#includ原创 2017-09-25 13:20:36 · 358 阅读 · 0 评论 -
【最小生成树】CF160D最小生成树中的边
题目描述给你一个n(n<=10^5)个点, m条边(n-1<=m <= min(10^5, n*(n-1)/2))的无向连通图(任何两个点之间只有一条边)。给出每条边的两个端点和对应的权值。对于图中的每一条边,判断 (1)存在于任何一颗最小生成树中 any (2)至少存在于某一颗最小生成树中 at least one (3)不存在任何一棵最小生成树中 none分析其实这道题是kruskal算法原创 2017-09-25 13:12:59 · 454 阅读 · 0 评论 -
【最小生成树&LCT】Codeforces603E-Pastoral Oddities
题目大意:给出一个图,求使得这个图中每个点的度数都为奇数。 求出用前i条边,使图满足条件的情况下,最大边权的最小值。分析:SolutionA LCT维护最小生成树很容易发现一些性质: 如果要使得图中每个点度数为奇数,那么每个联通块中点的个数一定为偶数: 根据题目,为了使最大边权最小,我们可以把每个联通块看成它的最小生成树,那么这棵树一定满足:每个非根节点的儿子结点个数必须为偶数,根节点儿子结原创 2017-09-28 10:06:56 · 467 阅读 · 0 评论 -
【总结】LCT算法的基础建模与应用
前言:在恶心了几道LCT算法的题后,勉强领悟到一点LCT的用处 作为一个比较经典的数据结构,LCT的应用范围比较广泛,比如动态维护最小生成树,动态维护双联通分量,以及其它的一些动态路径询问的问题。尽管在子树问题上,LCT算法显得有些无力(出门左转找ET),但毕竟很多子树问题可以用DFN+Splay水过,但路径询问,却几乎找不到可以替代LCT的算法。基本概念:LCT算法,其实就本质...原创 2018-03-26 21:26:36 · 1730 阅读 · 0 评论 -
【图论】【生成树】(AtCoder Regular Contest 093 E) Bichrome Spanning Tree
题意:给出一个N个点M条边无向连通图,现在需要给每条边染色(黑/白),染色完毕后,算出一颗至少包含一条黑边与一条白边的最小生成树,要求这个生成树的权值和为X,求染色的方案数。N≤1000,M≤2000N≤1000,M≤2000N\leq 1000,M\leq 2000分析:Atcoder的题的确很锻炼思维。首先,一个众所周知的最小生成树算法:破圈算法。这就是本题解法的基础。...原创 2018-03-28 20:11:59 · 587 阅读 · 0 评论 -
【仙人掌?】【并查集】HDU6350 Always Online
分析:考场上看都没看的题。。。但实现起来居然异常简单(相对于隔壁D题动态点分治而言)。。。。这题除了利用了仙人掌图的定义。。其它都和仙人掌没关系。。。先考虑一个相对简单的问题: 如果给的是棵树,怎么求答案?树的性质无非就是两点间路径唯一,也就是说,这里的“最大流”可以看作两点间路径上的边权最小值。从大到小加入边。每次加入时,因为两端点所在的联通块中,这条边边权一定是最...原创 2018-08-07 12:10:02 · 397 阅读 · 0 评论 -
【搜索】【kruskal】BZOJ1016[JSOI2008]最小生成树计数
分析:根据最小生成树的性质,如果存在多个最小生成树,那么这几种最小生成树必然满足:权值相等的边数量相同。所以要计算不同的情况,只需要考虑权值相同的边的选择状态。然后由于题目满足:权值相等的边不超过10条,那么爆搜就可以了。 对于权值相同的一个边集,用爆搜讨论完所有的选择情况,如果选择完后,这种权值边的总数,与预先求出的最小生成树中这种边权的边数量相同,即合法。然后乘法原理乘起来就可以...原创 2018-08-31 17:26:43 · 158 阅读 · 0 评论 -
【线段树】【最小生成树】BZOJ5216 [Lydsy2017省队十连测]公路建设
分析:用线段树维护某个区间内的最优边(最多N条)所以复杂度就是O(N∗logM∗Q+MlogM)O(N*logM*Q+MlogM)O(N∗logM∗Q+MlogM)#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>#include<vector&g...原创 2019-02-28 10:07:54 · 298 阅读 · 0 评论