CF2013F2.Game in Tree (Hard Version)
NOI/NOI+/CTSC
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
这是问题的困难版本。在这一版本中,不要求 u=v。只有当两个版本的问题都成功解决后,你才能进行 hack。
Alice 和 Bob 在一棵树上玩一个有趣的游戏。这棵树有 n 个顶点,编号从 1 到 n。回顾一下,一棵有 n 个顶点的树是一个有 n−1 条边的无向连通图。
游戏规则是 Alice 和 Bob 轮流移动,Alice 先行动,每位玩家在自己的回合中,必须从当前所在的顶点移动到一个尚未被访问过的相邻顶点。如果某个玩家无法移动,则他输掉比赛。
给定两个顶点 u 和 v。从顶点 u 到顶点 v 的简单路径用数组表示为 p1,p2,p3,…,pm,其中 p1=u,pm=v,并且每对相邻的顶点 pi 和 pi+1之间都有一条边(1≤i<m)。
你的任务是,判断在 Alice 从顶点 1 开始,而 Bob 从路径中的顶点 pj(1≤j≤m)开始的情况下,谁将获胜。
输入格式
输入包含多个测试用例。第一行为测试用例的数量 t(1≤t≤104)。接下来每个测试用例进行描述。
每个测试用例的第一行是一个整数 n(2≤n≤2⋅105),表示树中顶点的个数。
接下来的 n−1 行,每行包含两个整数 a 和 b(1≤a,b≤n),表示顶点 a 和 b 之间连接着一条无向边。这些边保证组成一棵树。
测试用例的最后一行包含两个整数 u 和 v(2≤u,v≤n),保证从 u 到 v 的路径不通过顶点 1。
保证所有测试用例中 n 的总和不超过 2⋅105。
输出格式
对于每个测试用例,输出 m 行。
在第 i 行输出结果,如果 Alice 从顶点 1 开始而 Bob 从顶点 pi 开始时,游戏的赢家是谁。如果 Alice 赢,则输出“Alice”;否则输出“Bob”。
输入输出样例
输入#1
3 3 1 2 2 3 2 3 6 1 2 1 3 2 4 2 5 1 6 4 5 4 1 2 1 3 2 4 2 4
输出#1
Bob Alice Alice Bob Alice Bob Alice
说明/提示
在第一个例子中,路径是(2,3)。如果 Bob 开始时位于顶点 2,Alice 在第一回合就无法移动,只能输掉比赛。而如果 Bob 从顶点 3 开始,Alice 会移动到顶点 2,此时 Bob 就没有顶点可动并会输掉比赛。
本翻译由 AI 自动生成
输入解题思路,AI测评打分。不知道怎么写?