Description:
贝茜被农民们逼进了一个偏僻的农场。农场可视为一棵有 \(N\) 个结点的树,结点分别编号为 \(1,2,\ldots, N\) 。每个叶子结点都是出入口。开始时,每个出入口都可以放一个农民(也可以不放)。每个时刻,贝茜和农民都可以移动到相邻的一个结点。如果某一时刻农民与贝茜相遇了(在边上或点上均算),则贝茜将被抓住。抓捕过程中,农民们与贝茜均知道对方在哪个结点。
Hint:
\(n \le 7*10^4\)
Solution:
很有趣的题
题解大多是点分治做法
但是由于我的点分治太菜
便学习了这种神仙做法,还跑到了\(luogu\) \(rk5\)?
设牛在rt处出发,现在处于u,并且有叶子v
不难发现我们需要预处理出每个点到它最近叶子节点的距离
然后根据 $dep[rt]-dep[u] \le dep[u]-dep[v] $
来判断这个叶子是否可以放农民来控制它
如果可以,则return,因为越早控制住这个点,答案就越小
首先,显然一条链上的答案都是相等的
所有考虑把链缩成边,再暴力每个点\(dfs\)
这样复杂度就会降下来,不过貌似会被菊花图卡飞?
#include