5087.铃兰小姐是我们的光

时间限制:8s 内存限制:512MB

在把铃兰托付给罗德岛并离开前,铃兰的父母将一个“御守”郑重地交到了眼眶通红的铃兰手中。 “等到御守里不再有嘀嗒声,我们就回来了。” 在旁人听来,这像是个糊弄小孩子的约定。 但铃兰抽泣着点了点头。 “爸爸妈妈从不食言。”在那之后,铃兰是这样和朋友们说的。 所以,她一直随身带着那沉甸甸的小布袋。 每天到了睡觉时间,她会听听御守里的嘀嗒声,对着它说些想向父母倾诉的话,然后安然睡去。 夜夜如此。 曾有人怂恿铃兰拆开御守,把内里的东西关掉,但铃兰义正词严地拒绝了。 “御守怎么可以拆开呢,拆开就不灵了呀。” 其实她知道里面有什么,这很简单,仅凭触摸和常识就能知晓。 但她的选择是,相信,并等待。 一天,又一天。 终于,在某个中午,贴身口袋里的颤动停下了。 妈妈突然出现在身后,爸爸提着一个大袋子,脸上挂着她怀念的温和笑容。 对于承诺,这一对父母是从来不怠慢的。 这个家庭在罗德岛上短暂重逢,度过了数个值得铭记的日夜。 而很快地,他们又要再次分别。 这一次,父亲郑重地诵读了祷词并将御守启封,母亲则仔细检查表盘,并为怀表拧上发条。 他们完成了自己的部分,随后请铃兰系紧御守的绳线。 这场简单朴素的仪式没有持续多久,但每个人都很专注,很认真。 一位神职,一位杀手,一位干员。 一位父亲,一位母亲,一位女儿。 通过这个小小的御守,三个人的灵魂紧紧联系到一起。 因为尊重,所以信守承诺。 因为信赖,所以愿意忍耐。 大地将他们生生拆散。 但爱,跨越空间与时间,赋予他们重聚的力量。 “等到御守里不再有嘀嗒声,我们就回来了。” “在那之前,记得要准时睡觉哦~” “嗯!” “一路顺风!妈妈,爸爸!”

Alear 为了让铃兰不感到孤单,送给了铃兰小姐一棵神奇的小树。

这棵树每个节点都带有一种颜色,并且会随着时间不断生长。有些日子里,铃兰小姐想知道树上会有多少种颜色呢?当然,把整棵树都数一遍很辛苦的,她每次只会问以某个节点 u 为根的子树内有多少种不同的颜色。

Alear 需要立刻回答铃兰的问题,因此需要你的帮助。

输入格式(从终端/标准输入读取)

第一行 $n,q$,表示当树生长到最后会有 $n$ 个节点,一共有 $q$ 个操作。
接下来 $q$ 行,每行为:

  1. 0 u f c:表示一个新长出的节点,其父节点为 $f$ ,颜色为 $c$ ,特别的,第一行 表示 0 1 0 c 节点 $1$ 是颜色为 $c$ 根节点 。

  2. 1 u :表示询问以节点 $u$ 为根的子树内颜色数 。

为了确认你能够立刻回答铃兰的问题,其中 $u$, $f$, $c$ 需要与上一次询问的答案求异或才能得到实际的输入。例如,当前询问为 1 u,上一次询问产生的答案为 $last_{ans}$,则解密后实际询问的节点为 $u' = u \oplus last_{ans}$,你需要回答以 $u'$ 为根的子树中有多少种不同的颜色。这里的异或是指按位异或。

特别的,对于第一次询问,$last_{ans} =0$ 。

输入数据保证:

$1 \leq n \leq 2 \times 10^5$, $1 \leq q \leq 4 \times 10^5$

输出格式(输出至终端/标准输出)

每行一个整数表示答案

输入样例

复制
5 10
0 1 0 1
1 1
0 3 0 0
1 3
0 5 3 3
1 0
0 1 0 0
1 6
0 4 2 3
1 4
 ·  \n
 · · · \n
 · \n
 · · · \n
 · \n
 · · · \n
 · \n
 · · · \n
 · \n
 · · · \n
 · \n

输出样例

复制
1
1
2
1
1
 \n
 \n
 \n
 \n
 \n

说明

保证第一个被加入的节点为 $1$,每个节点恰好被加入 $1$ 次。

除了第一次生长时 $f=0$,保证节点 $f$ 已存在。

解密后 $1 \leq u, f, c \leq n$ ,保证询问操作的 $u$ 已存在。

来源: 河南萌新联赛2024第(六)场

提交题解

Please login first.

© 2025 FAQs