#P6779. [Ynoi2009] rla1rmdq

[Ynoi2009] rla1rmdq

题目描述

给定一棵 nn 个节点的树,树有边权,与一个长为 nn 的序列 aa

定义节点 xx 的父亲为 fa(x)fa(x),根 rtrt 满足 fa(rt)=rtfa(rt)=rt

定义节点 xx 的深度 dep(x)dep(x) 为其到根简单路径上所有边权和。

mm 次操作:

1 l r:对于 lirl \le i \le rai:=fa(ai)a_i := fa(a_i)

2 l r :查询对于 lirl \le i \le r,最小的 dep(ai)dep(a_i)

输入格式

第一行三个空格隔开的数 nn mm rtrt,其中 rtrt 表示根节点的编号。

之后 n1n-1 行,每行三个空格隔开的数 u,v,wu,v,w 表示一条 uuvv 之间,边权为 ww 的边。

之后一行 nn 个空格隔开的数表示这个序列。

之后 mm 行,每行三个用空格隔开的数,表示一次操作。

输出格式

对每个 22 操作,输出一行一个数表示其对应的答案。

5 6 2
3 2 2
5 3 3
1 2 4
4 2 3
3 3 3 1 2
2 1 1
2 2 3
2 4 5
1 2 3
1 4 4
2 1 2
2
2
0
0

提示

Idea:yummy,Solution:nzhtl1477&memset0,Code:nzhtl1477,Data:nzhtl1477

对于 100%100\% 的数据,1n,m21051\le n,m\le 2\cdot 10^51ain1\le a_i\le n,边权在 [0,109][0,10^9] 之间。