最小生成树
DOFYPXY
这个作者很懒,什么都没留下…
展开
-
[2017纪中10-28]图 最小生成树+LCT
题面 把图分成正图(k+x)和负图(k-x),且称正树为正图中的最小生成树,负树为负图中的最小生成树。 有个很明显的结论是,无论 x 的值是多少,最后的最小生成树的边一定是正图中的最小生成树上的边或负图的最小生成树上的边(因为正图和负图都是联通图)。 当 x 趋近于无穷小的时候,正树就是图的最小生成树,当 x 逐渐增大,负树中的边会逐渐取代正树中的边(但不一定按照从小到大顺序取代),例如样例。原创 2017-10-30 07:59:22 · 480 阅读 · 0 评论 -
[2017纪中10-30]Graph 最小生成树
题面 先给边排序,枚举最小边,按顺序加比它大的边,直到合并了n-1次计算答案即可。 代码:#include<iostream> #include<cstdio> #include<cstring> #include<algorithm> using namespace std; const int inf=1e9; int n,m,fa[1010]; struct node { int原创 2017-10-30 19:16:51 · 289 阅读 · 0 评论 -
[2017纪中11-2]失格 最小生成树+数论
题面 正解 考场100pts乱搞做法: 首先先去重。 最小生成树从小到大加进边去是没有问题的,于是考虑枚举边长(余数)k,再枚举数a[i],再枚举倍数j,如果a[i]*j+k存在,则连一条边长为k的边,直到合并成数为止。 复杂度O(maxk*nlogP),不知道为什么跑得飞快,比O(nlogP)的正解跑的还快,貌似maxk *n大概是P级别的,此消彼长的那种。。。再加上常数小吧。。。加上x原创 2017-11-02 20:01:50 · 319 阅读 · 0 评论 -
[BZOJ3669][NOI2014]魔法森林 LCT
把边按权值aaa从小到大插入,并维护权值bbb的最小生成树。具体地,如果link的一条边的两个端点已经联通,那么把这两个点路径上bbb最大的边cut掉。最后用111到nnn路径上bbb的最小值加上当前aaa更新答案。 注意到边权不太好维护,可以把每条边重开一个点,向两个端点连边。 代码: #include<iostream> #include<cstdio> #inc...原创 2018-05-04 21:33:44 · 207 阅读 · 0 评论