题意
给定一棵带边权树,以及另外一些带边权的边,一个点\(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}\)重构树解决。