CF2013F2 Game in Tree (Hard Version)

题目描述

这是问题的困难版本。在这一版本中,不要求 $u = v$。只有当两个版本的问题都成功解决后,你才能进行 hack。 Alice 和 Bob 在一棵树上玩一个有趣的游戏。这棵树有 $n$ 个顶点,编号从 $1$ 到 $n$。回顾一下,一棵有 $n$ 个顶点的树是一个有 $n - 1$ 条边的无向连通图。 游戏规则是 Alice 和 Bob 轮流移动,Alice 先行动,每位玩家在自己的回合中,必须从当前所在的顶点移动到一个尚未被访问过的相邻顶点。如果某个玩家无法移动,则他输掉比赛。 给定两个顶点 $u$ 和 $v$。从顶点 $u$ 到顶点 $v$ 的简单路径用数组表示为 $p_1, p_2, p_3, \ldots, p_m$,其中 $p_1 = u$,$p_m = v$,并且每对相邻的顶点 $p_i$ 和 $p_{i+1}$之间都有一条边($1 \le i < m$)。 你的任务是,判断在 Alice 从顶点 $1$ 开始,而 Bob 从路径中的顶点 $p_j$($1 \le j \le m$)开始的情况下,谁将获胜。

输入格式

输入包含多个测试用例。第一行为测试用例的数量 $t$($1 \le t \le 10^4$)。接下来每个测试用例进行描述。 每个测试用例的第一行是一个整数 $n$($2 \le n \le 2 \cdot 10^5$),表示树中顶点的个数。 接下来的 $n - 1$ 行,每行包含两个整数 $a$ 和 $b$($1 \le a, b \le n$),表示顶点 $a$ 和 $b$ 之间连接着一条无向边。这些边保证组成一棵树。 测试用例的最后一行包含两个整数 $u$ 和 $v$($2 \le u, v \le n$),保证从 $u$ 到 $v$ 的路径不通过顶点 $1$。 保证所有测试用例中 $n$ 的总和不超过 $2 \cdot 10^5$。

输出格式

对于每个测试用例,输出 $m$ 行。 在第 $i$ 行输出结果,如果 Alice 从顶点 $1$ 开始而 Bob 从顶点 $p_i$ 开始时,游戏的赢家是谁。如果 Alice 赢,则输出“Alice”;否则输出“Bob”。

说明/提示

在第一个例子中,路径是($2, 3$)。如果 Bob 开始时位于顶点 $2$,Alice 在第一回合就无法移动,只能输掉比赛。而如果 Bob 从顶点 $3$ 开始,Alice 会移动到顶点 $2$,此时 Bob 就没有顶点可动并会输掉比赛。 **本翻译由 AI 自动生成**