#Y1249. 社会送温暖
时间限制2000 ms
内存限制256 MiB
通过率—0 / 0 次提交
题目描述
社会送温暖有非常多的体现方式,小G正在思考其中的一种: 我们可以把社会看做一个个节点的树,由条边连接,节点从编号,每个节点有一定财富值,用金币数描述。 每次社会送温暖时,他会选择两个节点,对链接它们的道路上的点,采用这么几种方式: ①.按顺序加金币数,第一个加,第二个加,第三个加,以此类推。 ②.按顺序加金币数,第一个加,第二个加,第三个加,以此类推。 ③.按顺序改金币数,第一个改为,第二个改为,第三个改为,以此类推。 ④.按顺序改金币数,第一个改为,第二个改为,第三个改为,以此类推。 有时社会送温暖还要考虑两个点路径间的民众反映,所以会询问路径上的金币数和,你要告诉他答案模的值。
输入
第一行三个数,分别表示节点数、操作数、和模数。 接下来行每行两个整数表示一条边。 接下来行个整数,第个整数表示这个点上初始的金币数。 接下来行每行三个数,表示操作类型与操作的两个点。 若或,则这行后还会接两个整数和,如题面所描述;若或,则这行后还会接一个整数;若,则表示询问。
输出
对每个询问操作输出一行作为答案。
输入样例
5 5 29311
1 3
5 3
4 3
3 2
24701 12247 27130 27071 4060
4 5 1 27096
4 2 3 17348
3 1 2 8785 8918
5 3 5
4 2 1 2936
输出样例
15488
提示
【数据规模】 20%的数据:。 40%的数据:。 另有30%的数据:树是一条链。 100%的数据:。
评测数据说明
本题使用按题意独立构造、以独立程序核对的训练数据及公开样例,共8个测试点,非原站或官方原始数据。总分100分。