C. wwx 的兔子打洞计划

    传统题 5000ms 512MiB

wwx 的兔子打洞计划

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

题目描述

wwx 最近养了很多兔子,这天,她想让她的兔子们搬进一个新的洞穴,但是由于兔子太多了,所以得重新开发洞穴使得兔子们都能入住。

wwx 挖了一个初始形态的洞穴,是一棵有着 nn 个节点的树,一开始兔子们都在外面,所以最初整个洞穴都是空的。

接下来 wwx 会安排她的兔子们进行 mm 次操作,操作的种类有 33 种。

  • 1 x:在给定的节点 xx 处进入一只兔子。 注意一个点上可以有多只兔子

  • 2 x:发出一道号令,让已经进入洞穴的所有兔子从它在的节点出发,挖掘出一个共计 xx 个节点的的菊花洞穴,注意 此处之前已经挖过洞穴的兔子仍然会进行操作,并且挖完洞以后的兔子们都会回到原本的洞穴,新挖出来的菊花洞穴会按照之前兔子进入洞穴的顺序进行标号,对于每一只兔子挖的菊花洞穴,花心洞穴的编号将会排在花瓣洞穴的前面。 例如,当前有 cntcnt 个洞穴中,第 ii 只进入兔子所处节点为 AA ,它挖出的菊花洞穴的花心编号为 cnt+x×(i1)+1cnt+x \times ( i - 1 ) +1,而花瓣洞穴的编号为 [cnt+x×(i1)+2,cnt+x×i][cnt + x \times ( i - 1 ) + 2, cnt + x × i],其中节点 AA 会和花心洞穴相连,所有的花瓣洞穴会和花心洞穴相连

  • 3 x y:表示一次查询,询问 xx 号洞穴和 yy 号洞穴的 LCALCA 节点编号。

输入格式

输入共 m+2m + 2 行。 第一行 22 个数 nnmm,表示初始点数和操作数。 接下来一行 n1n-1 个数 fa2,fa3...fanfa_2, fa_3...fa_n,表示每个点的父亲。保证任意 i[2,n],faiii\in [2,n] ,fa_i\le i 。 接下来 mm 行数表示操作。输入格式为 opti,xiopt_i, x_i,特别的,如果 opti=3opt_i = 3 ,则格式为 opti,xi,yiopt_i, x_i, y_i。两整数之间有一空格隔开。

输出格式

对于每次询问,输出答案。

数据范围

本题一共有16组数据。

test 1 (1个测试点共 7 分 ) :n105,i[1,m],opti=3n\le 10^5,\forall i \in [1,m],opt_i=3

test 2 ~ 4 (3个测试点共 21 分) :保证最终的点数不超过 10710^7 个。

test 5 ~ 7 (3个测试点共 21 分) : 保证所有的 22 操作均在 11 操作之后

test 8 ~ 10 (3个测试点共 21 分): 保证所有的 33 操作均在所有操作之后

test 11 ~ 16(6个测试点共 30 分): 没有特殊限制。

对于所有数据,n5×105,m5×105n \le 5 \times 10^5 , m \le 5 \times 10^5

对于任意 opti=2,xi[2,106]opt_i = 2, x_i \in [2, 10^6]

对于任意opti=3,x,yopt_i = 3 , x , y 均在 long long 范围内

题目保证数据均合法

样例输入

5 5
1 1 2 2
3 1 2
1 1
1 3
2 4
3 11 7

样例输出

1
1

2025提高班模拟赛(23)

未参加
状态
已结束
规则
IOI
题目
3
开始于
2026-3-28 21:00
结束于
2026-4-7 21:00
持续时间
240 小时
主持人
参赛人数
7