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)\neq f(x,v)\)

引理2:若\(w\le 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)\neq 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\)符合这个条件。

\(\text{Kruskal}\)重构树解决。

posted @ 2021-05-20 15:29  Grice  阅读(72)  评论(0编辑  收藏  举报