agc025_e Walking on a Tree

Walking on a Tree

https://atcoder.jp/contests/agc025/tasks/agc025_e

Snipaste_2020-03-20_20-21-06.png

Snipaste_2020-03-20_20-21-14.png

Tutorial

设经过每条边的路径数为 \(c_e\) ,则答案上界为 \(\sum \min \{ 2,c_e \}\) .

用数学归纳法证明上界一定可达.

\(n=1\) 时,显然成立.

\(n>1\) 时,找到一个叶子 \(v\) 设与之相连的边为 \(e\) ,点为 \(w\) .

  • 如果 \(c_e=0\) ,可直接将 \(v\) 删去.

  • 如果 \(c_e=1\) ,设那条路径为 \((v,x)\) .将其替换为 \((w,x)\)

  • 如果 \(c_e>1\) ,从其中选择任意两条路径 \((v,a),(v,b)\) ,令两条路径的交为 \((v,c)\) .我们的策略为

    \(v \to a \Leftrightarrow b \to v, a \to v \Leftrightarrow v \to b\) .这样的话 \((v,c)\) 路径上所有点的贡献一定为 \(2\) ,而这两条路径则可以等效的表示为 \((a,b)\) .其他点的 \(c_e\) 值不变.

得证.如上构造即可.

posted @ 2020-06-25 07:49  LJZ_C  阅读(157)  评论(0编辑  收藏  举报