参考红宝书 题目链接 对除 1 号点顶点外的点集,求一次最小生成森林,对于最小生成森林的联通分量,选择最短的一条边与 1 号点相连.设此时 1 号点的度为 \(k_0\),如果 \(k_0\lt L\) 则无解 (L为1号顶点的规定度) 然后通过可行交换来增加 1 号点的度,每次尝试加入一条和 1 号点相连的边,然后删去所形成的环上面的最长边. 此题点数为 5000,对于每次交换,可以用树形DP求出所有点到 1 号点的最长边.每次选择增量最小的边去交换,直到 \(k_0\) 达到 L 在实现中的…
E. MST Company time limit per test 8 seconds memory limit per test 256 megabytes input standard input output standard output The MST (Meaningless State Team) company won another tender for an important state reform in Berland. There are n cities in B…
题意:给定一个带权边无向图,求最小生成树,且满足第一个节点的度为固定的k 无解则输出-1 数据规模: 节点数n和限制k<=5000 边数m<=10^5 时限8sec 思路: 首先时限比较宽,第一个想到的暴力做法是枚举第一个节点(即首都)选中的K条边,复杂度为阶乘级别 无法接受.但是我们可以确定,问题的关键在于在所有国道中选择哪k条国道.一旦k条国道选定,最小生成树就是固定的. 考虑一个极端的情况,如果我们直接对这个图运行Kruskal算法,得到了一个树 且 第一个节点的度为k,则这就是正确的答…
[CF125E]MST Company(凸优化,最小生成树) 题面 洛谷 CF 题解 第一眼看见就给人丽洁姐那道\(tree\)一样的感觉. 那么二分一个权值,加给所有有一个端点是\(1\)的边, 然后跑最小生成树\(check\)一下就好了. #include<iostream> #include<cstdio> #include<cstdlib> #include<cstring> #include<cmath> #include<al…
LINK:CF125E MST Company 难点在于构造 前面说到了求最小值 可以二分出斜率k然后进行\(Kruskal\) 然后可以得到最小值.\(mx\)为值域. 得到最小值之后还有一个构造问题 值得注意的是虽然得到的权值是最小的 也是合法的 但是此时拿到的边不一定合法. 出现这种情况的原因是最小生成树的边的权值相等了 所以白边有限那么久多余了. 实际上可以构造出了的. 考虑如何构造: 第一种是考虑最小k度生成树的做法.先将除1以外的联通块做一下.然后不断加边. 加成一颗树的时候如果不满…
[AtCoder3611]Tree MST(点分治,最小生成树) 题面 AtCoder 洛谷 给定一棵\(n\)个节点的树,现有有一张完全图,两点\(x,y\)之间的边长为\(w[x]+w[y]+dis(x,y)\),其中\(dis\)表示树上两点的距离. 求完全图的\(MST\). 题解 首先连边的这个式子可以直接转换成树上的两点间的路径,所以接下来只考虑\(dis(x,y)\). 考虑\(Boruvka\)算法的执行过程,每次都会选择到达一个点集最近的一个点,然后将他们连边. 现在考虑模拟这…
题意 给一个无向加权联通图,没有重边和环.在这个图中可能存在多个最小生成树(MST),你可以进行以下操作:选择某条边使其权值加一,使得MST权值不变且唯一.求最少的操作次数. 分系:首先我们先要知道为什么会出现多个最小生成树的情况? 因为有些边的权值是相同的 , 所以在构造最小生成树的时候 ,我们是可以选择不同的边 , 构造出不同的最小生成树: 如果我们要是生成的最小生成树是唯一的 , 那我们每一次的加边十都只能是一种选择 也就是说,在构造过程的某一次抉择中,如果有多条边,他们的权值均最小,且合…
很好的解题报告: http://blog.csdn.net/new_c_yuer/article/details/6365689 注意两点: 1.预处理环中权值最大的边···· 2.可以把去掉度限制后的点看成是连通的,权值为无穷远的点也看做是连通的,反正后面肯定会替换出来的···· 我的代码没有预处理出权值最大的边,但是第2点事做到了的,这样便于代码的实现····· 贴代码: #include <cstdio> #include <iostream> #include <ma…
题目链接 Description Given a connected undirected graph, tell if its minimum spanning tree is unique. Definition 1 (Spanning Tree): Consider a connected, undirected graph G = (V, E). A spanning tree of G is a subgraph of G, say T = (V', E'), with the fol…
\(\mathcal{Description}\)   Link.   \(n\) 个公司,每个公司可能独立或者附属于另一个公司.初始时,每个公司附属于 \(a_i\)(\(a_i=-1\) 表示该公司独立).不存在两级及以上的附属关系.每次事件随机选取两个独立的公司,使其中一个公司所拥有的附属公司全部独立,并且该公司成为另一个公司的附属.求使仅存在一个独立公司的期望操作次数.对 \(10^9+7\) 取模.   \(n\le500\). \(\mathcal{Solution}\)   奇怪的…