#P4242. 树上的毒瘤
树上的毒瘤
题目背景
Salamander开心地把一大袋毒瘤带回了家,把他们染上了不同的颜色,并把他们挂在了院子里的树上。
题目描述
这棵树上有个节点,由条树枝相连。初始时树上都挂了一个毒瘤,颜色为。接下来Salamander将会进行个操作。
Salamander有时会修改树上某个点到另外一个点的简单路径上所有毒瘤的颜色。
对于给定的树上某个点集,Salamander还定义了某个点的权值:
其中表示到的路径上毒瘤颜色的段数,比如到的路径上毒瘤颜色为时,颜色段数为。
Salamander对树上的毒瘤们的状态很感兴趣,所以有时会指定树上个节点作为点集,询问这个节点的权值。
输入格式
第一行包括两个正整数、,表示树上的节点数和操作个数。
第二行包括用空格隔开的个正整数,表示树上每个节点初始的毒瘤颜色。
接下来行,每行两个正整数、,表示树上有一条连接和的边。
接下来描述个操作:
-
1 若给出的第一个整数等于,那么接下来将会有三个正整数、、,表示将树上编号为的点到编号为的点的简单路径上的毒瘤颜色全都改为。
-
2 若给出的第一个整数等于,那么接下来将会有一个正整数,表示指定的树上节点个数。下一行将会有个用空格隔开的互不相同的正整数,表示当前询问给定的个节点。
输出格式
若干行,对于每个操作输出对应的答案。
提示
保证输入数据合法。
对于30%的数据,有,。
对于60%的数据,有,。
对于100%的数据,有,,,。