#P5529. [Ynoi2012] 梦断 SCOI2017

[Ynoi2012] 梦断 SCOI2017

题目描述

nn 个学生构成了一棵有根树,每个学生有一个 gpa\text{gpa}

定义一个学生所在的专业为仅保留两端学生 gpa\text{gpa} 相同的边时,这个学生所在的连通分量。

定义一个专业的怨气值max(dep[a]dep[b]+1)max(dep[a]-dep[b]+1) s.ts.t. a,ba,b是专业中的学生,dep=0dep_{根}=0depw=depw的父亲+1dep_{w}=dep_{w的父亲}+1

操作 1 :给出 xxyy,把学生 xxgpa\text{gpa} 改成 yy

操作 2 :给出 xxyy,把学生 xx 所在的专业中所有点 gpa\text{gpa} 改为 yy

操作 3 :给出 xx,问学生 xxgpa\text{gpa}xx 所在专业的人数,xx所在专业的怨气值。

输入格式

第一行一个数 nn

第二行 nn 个数表示每个节点的父亲,其中第 ii 个数 <i<i,且 11 节点的父亲为 00

第三行 nn 个数表示每个学生的 gpa\text{gpa}

第四行一个数 mm

之后 mm 行,每行一个两或三个数表示一次操作,类型如上述。

输出格式

对于每个 33 操作,输出一行三个数,中间用空格隔开,依次表示:学生 xxgpa\text{gpa}xx 所在专业的人数,xx 所在专业的怨气值。

10
0 1 1 1 3 4 2 4 2 3
16 20 29 16 23 6 29 21 1 22
10
3 4
3 4
2 6 20
2 1 8
2 2 8
1 9 21
3 6
3 2
1 3 11
1 4 17

16 2 2
16 2 2
20 1 1
8 3 2

提示

Idea:ccz181078,Solution:ccz181078,Code:ccz181078,Data:ccz181078

定义 gpa\text{gpa} 共有 cc 种。

对于 40%40\% 的数据,n,m1000n,m \le 1000

对于另外 40%40\% 的数据,n,m105n,m \le 10^{5}c=2c=2gpa\text{gpa} 的范围在 [1,2][1,2] 中。

对于 100%100\% 的数据,n,m105n,m \le 10^5c=30c=30gpa\text{gpa} 的范围在 [1,30][1,30] 中。

我都懒得喷 THU 了。