zoukankan      html  css  js  c++  java
  • CF1119F

    题意

    洛谷

    做法

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

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

  • 相关阅读:
    java 数字加密
    java 计算旅途时间
    java练习题3
    java练习题
    java练习
    java练习题
    删除记录模块的设计与实现
    修改记录模块的设计与实现
    提交页面
    采用PreparedStatement的对象实现记录的查询操作
  • 原文地址:https://www.cnblogs.com/Grice/p/12925820.html
Copyright © 2011-2022 走看看