1434 「SDOI2014」旅行 | OJ题库 | CODE STUDY
CODE STUDY
Programming Practice Platform

欢迎回来

1434

「SDOI2014」旅行

Hard 时间限制 1000 ms 内存限制 262144 KB
线段树 树链剖分

题目详情

返回题库

题目描述

S 国有 N  个城市,编号从 1  到 N 。城市间用 N−1  条双向道路连接,满足从一个城市出发可以到达其它所有城市。每个城市信仰不同的宗教,如飞天面条神教、隐形独角兽教、绝地教都是常见的信仰。为了方便,我们用不同的正整数代表各种宗教,S 国境内总共有 C  种不同的宗教。

S 国的居民常常旅行。旅行时他们总会走最短路,并且为了避免麻烦,只在信仰和他们相同的城市留宿。当然旅程的终点也是信仰与他相同的城市。S 国政府为每个城市标定了不同的旅行评级,旅行者们常会记下途中(包括起点和终点)留宿过的城市的评级总和或最大值。

在 S 国的历史上常会发生以下几种事件:

1、CC x c :城市 x  的居民全体改信了 c  教;

2、CW x w :城市 x  的评级调整为 w ;

3、QS x y :一位旅行者从城市 x  出发,到城市 y ,并记下了途中留宿过的城市的评级总和;

4、QM x y :一位旅行者从城市 x  出发,到城市 y ,并记下了途中留宿过的城市的评级最大值。

由于年代久远,旅行者记下的数字已经遗失了,但记录开始之前每座城市的信仰与评级,还有事件记录本身是完好的。请根据这些信息,还原旅行者记下的数字。

为了方便,我们认为事件之间的间隔足够长,以致在任意一次旅行中,所有城市的评级和信仰保持不变。

输入描述

输入的第一行包含整数 N ,Q  依次表示城市数和事件数。

接下来 N  行,第 i+1  行两个整数 $ W_i , C_i $  依次表示记录开始之前,城市 i  的评级和信仰。

接下来 N−1  行每行两个整数 x ,y  表示一条双向道路。

接下来 Q  行,每行一个操作,格式如上所述。

数据范围与提示:

对所有的数据,$Q \leq10^5,C \leq10^5 $,对所有QS和QM事件,起点和终点城市的信仰相同;在任意时刻,城市的评级总是不大于$10^4 $的正整数,且宗教值不大于C。

输出描述

对每个QS和QM事件,输出一行,表示旅行者记下的数字。

测试样例

样例支持多行内容展示
样例1
输入
5 6
3 1
2 3
1 2
3 3
5 1
1 2
1 3
3 4
3 5
QS 1 5
CC 3 1
QS 1 5
CW 3 3
QS 1 5
QM 2 4
输出
8
9
11
3
editor.py

提交前会先自动运行样例。只有样例全部通过,才会进入后端正式判题。