zoukankan      html  css  js  c++  java
  • gym102129F

    题意

    给定一棵带边权树,以及另外一些带边权的边,一个点(x)合法,当且仅当(forall y)(f(x,y)ge P(x,y)),其中(f(x,y))(x)(y)树上路径的最小值,(P(x,y))(x)(y)的任意路径的最小值。

    做法

    定义:令(E_0)为非树边集合。

    引理1:一个点(x)合法,充要条件为:(forall (u,v,w)in E_0),满足(min{f(x,u),w}le f(x,v))(min{f(x,v),w}le f(x,u))

    证明:
    必要性显然。
    考虑证明充分性,假设(x)不合法,一定存在路径(P=k_1,k_2,ldots,k_m),其中(k_1=x,k_{m-1}=u,k_{m}=v),满足(min{P}>f(x,v))
    假设最小的(i< m-1),满足边((k_i,k_{i+1}))为非树边。
    (f(k_i,k_{i+1})ge min{P}),替换会使(min{P})更大,依然满足条件。
    (f(k_i,k_{i+1})<min{P})(min{P'=k_0,ldots,k_{i+1}}>f(x,k_{i+1}))
    综上,一定可以将路径调整成仅有最后一条边为非树边。

    (x)不合法的充要条件:(exists (u,v,w)in E_0),满足(min{f(x,u),w}>f(x,v))(min{f(x,v),w}>f(x,u)),即(w>min{f(x,u),f(x,v)})(f(x,u) eq f(x,v))

    引理2:若(wle f(u,v)),对于(forall x),这条边均合法。

    证明:
    若最终(w>min{f(x,u),f(x,v)}),那么(f(x,u),f(x,v))存在一个(< f(u,v))
    容易证明,树上路径((x,u),(x,v))除掉路径((u,v)),边集相同,则必定满足(f(x,u)=f(x,v))

    现在仅需考虑(w>f(u,v))的这些边。那么可以将第一个条件去掉,仅需考虑哪些(x),满足(f(x,u) eq f(x,v))

    引理2证明,若(f(x,u),f(x,v))存在一个(< f(u,v))上,两种显然相等。
    那么有(f(x,u)=f(u,v))(f(x,v)>f(u,v)),或,(f(x,u)>f(u,v))(f(x,v)=f(u,v))
    考虑加入树上边权(>f(u,v))的边,(u,v)所在连通块内的点(x)符合这个条件。

    ( ext{Kruskal})重构树解决。

  • 相关阅读:
    课后作业之评价
    课堂作业之寻找水王
    构建之法阅读笔记04
    课下作业
    构建之法阅读笔记03
    学习进度条九
    学习进度条八
    冲刺第五天
    构建之法阅读笔记02
    冲刺第四天
  • 原文地址:https://www.cnblogs.com/Grice/p/14789995.html
Copyright © 2011-2022 走看看