徐老师的元宵灯谜
该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。
题目背景
每年元宵佳节,家家户户张灯结彩,灯笼高挂,热闹非凡。今年,徐老师灵感大发,想用彩灯布置一棵“灯谜树”,不仅漂亮,还蕴含着神秘的灯谜魔法!
他选用了 N 盏彩灯,每盏灯只能显示 1 到 100 之间的一种颜色。由于经费有限,彩灯只能组成一棵有根树的结构(以 1 为根节点),每个节点代表一盏灯,边代表彩灯之间的连接。
在徐老师的设想中,若一个子树中某种颜色的彩灯数量为奇数,那么这种颜色就被称为“喜庆颜色”。 他希望统计每个子树中到底有多少种喜庆颜色。
例如,某棵子树中有 3 个红灯和 2 个蓝灯,则红色为喜庆颜色,蓝色不是;若只有一个绿灯,那么绿色就是喜庆颜色。
操作说明
为了让灯谜树更具变化,他将进行 Q 次操作。每次操作仅包含两个整数 K 和 X,含义如下:
- 查询操作(
K = 0):统计编号为X的节点为根的子树中,有多少种喜庆颜色; - 修改操作(
1 ≤ K ≤ 100):将编号为X的节点的颜色更改为颜色K。
注:喜庆颜色仅在该子树中出现次数为奇数时计入种类数;未出现(次数为 0)的颜色不计入。
输入格式
- 第一行输入两个正整数
N和Q,表示灯的数量和操作次数。 - 第二行输入
N个整数C₁, C₂, ..., Cₙ,表示每个节点初始的颜色(编号从1到100)。 - 第三行输入
N−1个整数P₂, P₃, ..., Pₙ,表示节点2到N的父节点编号。保证以1号节点为根构成一棵树。 - 接下来
Q行,每行输入两个整数K和X,含义如上。
输出格式
对于每一个查询操作(K = 0),输出一行一个整数,表示以 X 为根的子树中喜庆颜色的数量。
数据范围与约束
1 ≤ N ≤ 50001 ≤ Q ≤ 50001 ≤ Cᵢ ≤ 1001 ≤ K ≤ 100(仅当为修改操作时)1 ≤ X ≤ N
输入示例 1
10 5
1 2 3 4 5 6 7 8 9 10
1 1 2 2 3 3 4 4 5
0 1
0 4
1 4
0 4
0 1
输出示例 1
10
3
3
8
元宵小记
元宵之夜,灯火辉煌。 灯谜树在风中轻晃,仿佛每一抹颜色都藏着谜底。 徐老师站在树下,思索着每一处喜庆颜色是否真的带来了好运……