题号:NC251454
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld
题目描述
Alice和Bob最近又在寻找一些好玩的游戏,直到有一天他们发现了一颗有根树。
树的根节点为
,树上每个点有
种类型,分别对应
。
类型
分别表示向上跳
格,跳
格。类型
表示向上跳
格或
格。
Alice提议她随便选一个叶子节点(不包括根节点)开始向上跳,谁先不能跳谁就输。
Bob觉得非常的不公平,所以他试图破坏这个树,来获得胜利。
Bob能破坏有根树的一条边,从而使得跳跃无法越过该边。
Alice,Bob想要知道破坏第
条边后谁能获得胜利,两人都按照最优策略进行游戏。
注:此处破坏第
条边并不会改变树的形态,并且每次破坏操作独立。
输入描述:
输入共
行。
第一行一个整数表示
。
第二行
个整数
表示节点类型。
接下来
行,表示第
条边
。
输出描述:
输出共
行,分别表示第
条边被破坏后,该游戏谁能获得胜利。
如果Alice赢则输出"Alice",否则输出"Bob"(不包括双引号)。
示例1
说明
若破坏1-2这条边,Alice选择3号节点作为起点,向上跳一步,Bob无法再跳,Alice赢。
若破坏1-3这条边,Alice无论选择2,3哪一个节点作为起点,都无法再跳,Bob赢。

示例2
输入
复制
8
1 3 2 1 3 1 1 2
1 2
1 3
2 4
2 5
4 8
5 6
5 7
输出
复制
Alice
Bob
Bob
Alice
Bob
Bob
Bob