AT_arc162_c [ARC162C] Mex Game on Tree
题目描述
给定一棵有 $N$ 个顶点的有根树,顶点编号为 $1$ 到 $N$。顶点 $1$ 是根,对于每个 $i\ (2\leq i \leq N)$,顶点 $i$ 的父节点为 $P_i$。
树上的部分顶点上写有 $0$ 到 $N$ 之间的整数。这些信息由数列 $A=(A_1,A_2,\ldots,A_N)$ 给出,若 $A_i\neq -1$,则表示顶点 $i$ 上写有整数 $A_i$;若 $A_i=-1$,则表示顶点 $i$ 上没有写整数。
Alice 和 Bob 进行游戏。Alice 先手,双方轮流操作,直到所有顶点都被写上整数。每次操作可以选择一个尚未写整数的顶点,并在其上写一个 $0$ 到 $N$ 之间的整数。
操作结束后,对于每个顶点 $v$,定义 $f(v)$ 为“在顶点 $v$ 的子树中(包括 $v$ 本身),没有被写下的最小非负整数”。
若存在某个顶点 $v$ 满足 $f(v)=K$,则 Alice 获胜,否则 Bob 获胜。请判断在双方都采取最优策略的情况下,谁会获胜。
有 $T$ 组测试数据,请分别作答。
输入格式
输入按以下格式从标准输入读入。
> $T$
> $\mathrm{case}_1$
> $\vdots$
> $\mathrm{case}_T$
每组数据格式如下:
> $N\ K$
> $P_2\ P_3\ \ldots\ P_N$
> $A_1\ A_2\ \ldots\ A_N$
输出格式
输出 $T$ 行。对于第 $i$ 组测试数据,若 Alice 获胜则输出 `Alice`,否则输出 `Bob`。
说明/提示
## 限制
- $1\leq T\leq 10^3$
- $2\leq N\leq 10^3$
- $0\leq K\leq N$
- $1\leq P_i < i\ (2\leq i\leq N)$
- $-1\leq A_i\leq N\ (1\leq i\leq N)$
- 所有输入的数均为整数
- 所有测试数据中 $N$ 的总和不超过 $2\times 10^3$
## 样例解释 1
对于第 $1$ 组测试数据,Alice 可以在顶点 $2$ 上写 $0$,无论 Bob 如何操作,都有 $f(2)=2$,因此 Alice 获胜。对于第 $2$ 组测试数据,Bob 可以通过合理选择写入的整数,使得不存在 $f(v)=4$ 的顶点,因此 Bob 获胜。
由 ChatGPT 4.1 翻译