巡逻

蓝书上的解法可能存在一个问题:如果第一次选的路径不那么优秀,但是会让第二次选的路径变得更优秀,从而让最后的答案更优秀怎么办?下面证明这种情况不会发生:

设树上路径的长度均按边数计算。

1. 两条新路的目标实际上是什么

设两条新路的端点在原树上的对应路径分别为 \(P, Q\)

原来每条树边都走两次,共 \(2(n-1)\)。加入两条新路后:

  • 新路本身各走一次,增加 \(2\);(题目要求)
  • 位于 \(P \triangle Q\) (对称差) 中的树边只需走一次;
  • 同时位于 \(P, Q\) 中的树边仍需走两次。

因此总路程为

\[2(n-1)+2-|P \triangle Q|. \]

所以问题等价于最大化

\[|P \triangle Q|. \]

固定 \(P\) 后,

\[|P \triangle Q| =|P|+|Q\setminus P|-|Q\cap P|. \]

因此把 \(P\) 上的边权设为 \(-1\),其他边设为 \(1\),则第二条路径 \(Q\) 的权值恰好是

\[w_P(Q)=|Q\setminus P|-|Q\cap P|, \]

于是

\[|P \triangle Q|=|P|+w_P(Q). \]

到这里确实只是“固定第一条后的最优第二条”。


2. 关键引理

取原树的一条直径 \(D\),长度为 \(d\)。令

\[w(e)= \begin{cases} -1,&e\in D,\\ 1,&e\notin D. \end{cases} \]

设修改权值后的最大权路径权值为

\[q=\max_R w(R). \]

关键结论是:

\[\boxed{\max_{P,Q}|P \triangle Q|=d+q.} \]

这直接说明:任何“更差的第一条路径”即使让第二条路径更优秀,两者合计也不会超过 \(d+q\)

下面证明。


3. 任意方案都不会超过 \(d+q\)

任取两条路径 \(P, Q\),令

\[H=P \triangle Q. \]

由于 \(H\) 是一棵森林(可以想一想为什么),并且奇度数顶点不超过四个,所以 \(H\) 的边可以分解成至多两条边不重复的路径 \(A, B\)。因此

\[|P \triangle Q|=|A|+|B|. \]

现在只需证明,对任意两条边不相交的路径 \(A, B\),都有

\[|A|+|B|\le d+q. \]

情况一:至少一条路径不使用直径上的边

例如 \(A\) 不使用 \(D\) 上的边,那么它的每条边权都是 \(1\),所以

\[q\ge w(A)=|A|. \]

其中,第一个大于等于是 \(q\) 的定义,而第二个等号是因为 \(A\) 没有使用 \(D\) 的边。
又由于 \(B\) 是树上的一条路径,其长度不超过直径:

\[|B|\le d. \]

\[|A|+|B|\le q+d. \]

情况二:两条路径都使用直径上的边

从直径左端 \(s\) 到右端 \(t\) 建立坐标,直径长度为 \(d\)

由于 \(A, B\) 边不相交,它们在直径上的区间也边不相交。不妨设排列如下:

s ---- x₁ ===== x₂ ---- y₁ ===== y₂ ---- t
          A                 B

设:

  • \(A\)\(x_1, x_2\) 两端伸出直径的部分长度分别为 \(\alpha, \beta\)
  • \(B\)\(y_1, y_2\) 两端伸出直径的部分长度分别为 \(\gamma, \delta\)

于是

\[|A|=\alpha+(x_2-x_1)+\beta, \]

\[|B|=\gamma+(y_2-y_1)+\delta. \]

所以

\[\begin{aligned} |A|+|B|-d ={}&\alpha+\beta+\gamma+\delta\\ &-\bigl[x_1+(y_1-x_2)+(d-y_2)\bigr]. \end{aligned} \]

因为 \(D\) 是直径,左侧外伸部分不能太长。否则从该外伸端点走到 \(t\) 会得到一条比直径更长的路径。因此

\[\alpha+(d-x_1)\le d \quad\Longrightarrow\quad \alpha\le x_1. \]

同理,

\[\delta\le d-y_2. \]

代入可得

\[|A|+|B|-d \le \beta+\gamma-(y_1-x_2). \]

现在考虑连接两个“内侧外伸端点”的路径 \(R\)

  • 先沿长度为 \(\beta\) 的部分到达 \(x_2\)
  • 再沿直径从 \(x_2\) 走到 \(y_1\)
  • 最后沿长度为 \(\gamma\) 的部分离开直径。

这条路径的修改后权值恰好为

\[w(R)=\beta+\gamma-(y_1-x_2). \]

由于 \(q\) 是最大权路径,

\[q\ge w(R)\ge |A|+|B|-d. \]

所以仍有

\[|A|+|B|\le d+q. \]

这就证明了任意方案都不可能超过 \(d+q\)


4. 直径方案确实能达到 \(d+q\)

\(R\) 是修改权值后的最大权路径,则

\[\begin{aligned} |D\triangle R| &=|D|+|R\setminus D|-|R\cap D|\\ &=d+w(R)\\ &=d+q. \end{aligned} \]

因此直接把 \(D\)\(R\) 作为两条新路对应的树上路径,就能达到上界 \(d+q\)

所以

\[\max_{P,Q}|P\triangle Q|=d+q. \]

最终最短巡逻距离为

\[2(n-1)+2-(d+q)=2n-d-q. \]

也就是书中的

\[2n-L_1-L_2. \]

posted @ 2026-08-11 12:55  最爱丁珰  阅读(3)  评论(0)    收藏  举报