最小生成树
Neo__Z
这个作者很懒,什么都没留下…
展开
-
bzoj1977 次小生成树【最小生成树+倍增】
解题思路:题目要求的是严格次小生成树。先说说不严格次小生成树怎么做。 要先求最小生成树。然后枚举每一条不最小生成树上的边(x,y,len),那么如果要把这条边压入树中,肯定要删除原树中的一条边。由于要是新树最小,所以删除的只能是原树中x到y路径上的最大边mx1,可以用倍增来求。那么新树大小即为totlen-mx1+len。对所有边进行该操作,取最小值就是答案。那如何求严格次小呢? 其实还是一样的原创 2017-10-28 16:13:16 · 371 阅读 · 0 评论 -
NOIP模拟 图【最小生成树】
题目大意:给n个点,m1条A边,m2条B边,A,B边所构成的图都是联通的; 有q次询问,每次询问给出x,问将所有A边加上x,B边减去x后图中的最小生成树是多少。1<=n,q<=1000;解题思路:注意到当x为负无穷时答案就是A边构成的MST,为正无穷时就是B边构成的MST,所以当x逐渐增大,B边构成的MST上的边就会逐渐取代A边构成的MST上的边。而最优的肯定是小的B边先加进去取代路径上最大的A边原创 2017-11-07 20:50:57 · 330 阅读 · 0 评论 -
bzoj2395 Timeismoney【最小乘积生成树】
解题思路:题目即是求令∑ci∗∑ti\sum c_i*\sum t_i最小的生成树。我们把∑ci\sum c_i看做横坐标xx,∑ti\sum t_i看做纵坐标yy,要求k=xyk=xy最小,即是使得函数y=kxy=\frac{k}{x}最接近坐标轴。而一个点对应了一个函数,这些函数要么重合,要么不相交。 所以我们要找的点一定在一个左下部分的凸包上。看网上的题解求凸包左下部分都是用的分治法。1.首原创 2017-12-22 18:14:50 · 430 阅读 · 0 评论 -
bzoj4025: 二分图【LCT维护生成树】
Description 神犇有一个n个节点的图。因为神犇是神犇,所以在T时间内一些边会出现后消失。神犇要求出每一时间段内这个图是否是二分图。这么简单的问题神犇当然会做了,于是他想考考你。 Input 输入数据的第一行是三个整数n,m,T。 第2行到第m+1行,每行4个整数u,v,start,end。第i+1行的四个整数表示第i条边连接u,v两个点,这条边在start时刻出现,在第end...原创 2018-03-07 19:41:43 · 257 阅读 · 0 评论 -
bzoj3995: [SDOI2015]道路修建【线段树维护最小生成树】
Description 某国有2N个城市,这2N个城市构成了一个2行N列的方格网。现在该国政府有一个旅游发展计划,这个计划需要选定L、R两列(L<=R),修建若干条专用道路,使得这两列之间(包括这两列)的所有2(R-L+1)个城市中每个城市可以只通过专用道路就可以到达这2(R-L+1)个城市中的任何一个城市。这种专用道路只能在同一行相邻两列的城市或者同一列的两个城市之间修建,且修建需要花费...原创 2018-02-28 10:10:31 · 429 阅读 · 0 评论 -
bzoj3545&&3551: [ONTAK2010]Peaks离线&&在线【线段树合并&&kruskal重构树&&主席树】
Description 在Bytemountains有N座山峰,每座山峰有他的高度h_i。有些山峰之间有双向道路相连,共M条路径,每条路径有一个困难值,这个值越大表示越难走,现在有Q组询问,每组询问询问从点v开始只经过困难值小于等于x的路径所能到达的山峰中第k高的山峰,如果无解输出-1。 Input 第一行三个数N,M,Q。 第二行N个数,第i个数为h_i 接下来M行,每行3个数a ...原创 2018-03-04 12:06:14 · 265 阅读 · 0 评论 -
bzoj3322: [Scoi2013]摩托车交易【最大生成树+倍增】
Description mzry1992 在打完吊针出院之后,买了辆新摩托车,开始了在周边城市的黄金运送生意。在mzry1992 生活的地方,城市之间是用双向高速公路连接的。另外,每条高速公路有一个载重上限,即在不考虑驾驶员和摩托车重量的情况下,如果所载货物的量超过某个值,则不能驶上该条高速公路。今年,mzry1992 一共收到了来自n 个不同城市的n 份定订单,每个订单要求卖出上限为一定量的黄...原创 2018-03-27 19:32:27 · 257 阅读 · 0 评论 -
BJ模拟 cut【最小割树】
题目描述: 有一张n个点的无向图,给出任意两点之间的最小割,求一张符合条件的图。 n&lt;=100 解题思路: 每张无向图都对应着一棵最小割树,而任意两点间的最小割即为最小割树上两点间的最小边,现在考虑如何建出这棵最小割树。 其实就是最大生成树,最后判断一下每对点是否满足即可。 #include&lt;iostream&gt; #include&lt;algorithm&gt; ...原创 2018-05-08 21:31:50 · 217 阅读 · 0 评论