CF1970C3 Game on Tree (Hard)
题目描述
这是该问题的困难版本。此版本与简单版本的唯一区别在于 $ t $ 的约束条件。
Ron 和 Hermione 正在一棵有 $ n $ 个结点的树上玩游戏,所有结点初始均为未激活。游戏共进行 $ t $ 轮,每一轮开始时,恰好有一个结点上放置了一块石头,该结点被视为已激活。每一步操作可以选择石头所在结点的一个未激活的邻居,并将石头移动到该邻居上(从而激活该邻居)。Ron 先手,之后两人轮流操作,直到无法进行有效操作为止。无法行动的一方输掉本轮。如果双方都采取最优策略,每轮游戏谁会获胜?
注意,所有轮次都在同一棵树上进行,仅起始结点不同。此外,每轮结束后,所有已激活结点都会重新变为未激活。
输入格式
第一行包含两个整数 $ n $($ 2 \leq n \leq 2\times 10^5 $)、$ t $($ 1 \leq t \leq n $),分别表示树的结点数和轮数。
接下来的 $ n-1 $ 行,每行包含两个整数 $ 1 \leq u, v \leq n $,表示树中的一条边。
最后一行包含 $ t $ 个整数 $ 1 \leq u_1 , \dots , u_t \leq n $,表示每轮石头最初放置的结点编号。
输出格式
输出共 $ t $ 行,每行输出 "Ron" 或 "Hermione"(不带引号),表示每轮游戏的获胜者。
说明/提示
由 ChatGPT 4.1 翻译