首页 > 其他 > 详细

CF1119F

时间:2020-05-20 21:39:27      阅读:45      评论:0      收藏:0      [点我收藏+]

题意

洛谷

做法

考虑暴力,单独考虑一个度数限制\(d\)
\(f_{i,0/1}\)\(i\)子树全部满足限制,\((fa_i,i)\)是否被割断的最小值
若不考虑\(u\)这个点的度数限制,\(f_{u,0/1}=\sum\limits_{v\in son_u}min(f_{v,0},f_{v,1}+(u,v).w)\)
再考虑进\(u\)这个点,若\(f_{v,1}+(u,v).w\le f_{v,0}\)显然会选择割断,令\(cnt_u\)为这样的个数
\(deg_u-cnt_u\le d\)则无需操作
\(deg_u-cnt_u>d\),则还需要选择\(deg_u-cnt_u-d\)个点割掉,可以对差值\(f_{v,1}+(u,v).w-f_{v,0}\)建堆,最后留在堆中的,为需要割断的边

考虑优化这个暴力,若枚举\(d=1\sim n-1\)
对于\(deg_u\le d\),可以从这个图中移去,顺便将\((u,v).w\)加入点\(v\)的堆中,以示割掉这条边为限制度数
对于一个点,需要割断的边数是递减的,堆内虚边的数量若大于其,则永久弹出一些
则每次从堆内弹出的次数与实边的数量相关
这样做的复杂度为\(O(nlogn)\)

CF1119F

原文:https://www.cnblogs.com/Grice/p/12925820.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!