CF1163F 题解
max67
·
·
个人记录
本文尝试证明最多只取一条非树边(指均不被 1\leadsto i 的最短路树和 i\leadsto n 的最短路树包含)。
符号参考这个。
Lemma 3.2 以及之前毫无疑问是对的。
定义 T_1 表示以 D(1\leadsto i) 的最短路树,T_n 表示以 D(i\leadsto n) 的最短路树
对于任意一个点 p,考虑 pre(p) 和 suf (p) 之间的一些性质:
-
id(pre(p)) \le id(suf(p))
反证,设 id(suf(p))<id(pre(p))
记 D(1 \leadsto suf(p))=d,D(suf(a) \leadsto pre(p))=c,D(pre(p)\leadsto n)=e,D(suf(p)\leadsto p)=a,D(p\leadsto pre(p))=b。
那么显然 D(1\leadsto p)=D(1\leadsto suf(p))+D(suf(p)\leadsto pre(p))+D(pre(p)\leadsto p)=d+c+b,这是因为若两点在 T_1 上为祖先-儿子关系,那么他们在两点上的路径恰好就是两点的最短路。同理有 D(p \leadsto n)=a+c+e。
因为最短路的性质,有 D(1\leadsto p) \le D(1\leadsto suf(p)) + D(suf(p)\leadsto p),D(p\leadsto n) \le D(p\leadsto pre(p))+D(pre(p))\leadsto n),即 d+c+b\le d+a,a+c+e\le e+b,相加可得 a+b+2c+d+e\le a+b+d+e \to 2c\le 0,显然不合法。
- 若删边 (i,j)\in P,那么存在一条删边后的最短路,其至多有一条边满足同时不在 T_1 和 T_n 中。
为了区分,所有删边后的情况都加一个 '。
任取一条删边后的最短路 Q',满足只有连续一段不在 P 上(记作 x\leadsto y,其中 x,y\in P)。我们假设至少存在两条非树边在 x\leadsto y 上。
Update,有简单证明:
考虑任意一条不经过 (P(i),P(i+1)) 的最短路径 Q,我取 Q 中第一个满足 id(suf(p))\ge id(P(i+1)) 的 p 以及他前面的点 q。显然 q 一定满足 id(pre(q))\le id(suf(q)) \le id(P(i))。因此我取 Q=1\leadsto pre(q) \leadsto q \to p\leadsto suf(p)\leadsto n 一定不会更劣,这是因为取的是最短路。
因此最多只有一条非树边。
先对每一条非树边进行考虑,假设当前考虑边 (a,b),那么:
证明很简单:反证,若 id(pre(b)) \le id(P(i)),我们可以把 1\leadsto x\leadsto b 替换成 P(1\leadsto pre(b)\leadsto b),由于后者是 1\leadsto b 的原图的最短路,所以一定不劣,并且这条非树边消失。
那么此时取最靠前的一条非树边 (a,b),那么有 id(P(i+1))\le id(pre(b))\le id(suf(b)),那么我们把 b\leadsto y\leadsto n 替换成 P(b\leadsto suf(b) \leadsto n),由于后者是原图的最短路,因此一定不劣。而此时只剩下了一条非树边。
证毕。
可以看出来,引用的博客应该是把最后一段的 suf 改成 pre 导致他显然地挂掉了。