题意:给出两颗标号对应的树 。
两人进行游戏,初始时, 在点 ,
在点 。
两人轮流操作, 为先手。
可以利用 中的边移动(或不移动), 可以利用 中的边移动(或不移动)。
当两人相遇时游戏结束,
想最大化游戏轮数,
想最小化游戏轮数,问游戏会进行多少轮。(可能为无限轮)
,时限 。
考虑何时游戏会进行无限轮。
若 中相邻的两个点在 中距离 ,则
只需要在两个点反复横跳,即可永远不被抓到。
假设 中相邻的两个点在 中距离总是 ,以 所在的点为根,我们发现, 不可能走出 中自己所在的子树。
因为 若要跨越 ,则和 距离必然为 ,下一步就会被吃掉。原地等待也是下一步被吃掉,不会更劣。
于是, 的最优决策一定是每次向着
中 所在的子树行走。
记 表示 上 的距离, 表示 上 的距离。
若点 满足 ,那么 就不能前往该点。
在 上搜索,求出
能前往的点的集合,判定是否能进行无限轮,若不行,则前往 最大的点并等待,答案为 。
复杂度 。