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 翻译