CF1017G The Tree

题目描述

Abendsen 给 Juliana 分配了一个任务。在这个任务中,Juliana 有一棵包含 $n$ 个结点的有根树,结点编号为 $1$ 的结点是树的根。每个结点可以是黑色或白色。最开始,所有结点都是白色的。Juliana 需要处理 $q$ 个操作。每个操作有三种类型: 1. 如果结点 $v$ 是白色的,将其标记为黑色;否则,对 $v$ 的所有直接儿子执行此操作。 2. 将以 $v$ 为根的子树中的所有结点(包括 $v$ 本身)都标记为白色。 3. 查询第 $i$ 个结点的颜色。 如下图所示,是操作 “1 1” 的示例(对应第一个样例测试)。结点 $1$ 和 $2$ 已经是黑色,因此该操作会递归作用于它们的儿子。你能帮助 Juliana 处理所有这些操作吗? ![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF1017G/e1bfda7a1b03fca247e99f6625980764a1349b36.png)

输入格式

第一行包含两个整数 $n$ 和 $q$($2\leq n\leq 10^5$,$1\leq q\leq 10^5$),分别表示结点数和操作数。 第二行包含 $n-1$ 个整数 $p_2, p_3, \ldots, p_n$($1\leq p_i

输出格式

对于每个类型为 $3$ 的操作,如果该结点是黑色,输出 "black";否则输出 "white"。

说明/提示

第一个样例如下图所示。 ![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF1017G/cc16931f19a766fcc45c465ac34ccd83cbd711fb.png) 第二个样例如图所示。 ![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF1017G/f4ed5ffcf5834fcc15d2af9cfb118e0f9239a3e6.png) 由 ChatGPT 4.1 翻译