#730. [CZOJ 一周一测 R4 F1] 黑驴树 I

[CZOJ 一周一测 R4 F1] 黑驴树 I

(本题与 II 唯一区别为保证询问中两棵子树不为包含与被包含关系)

题目背景

这是一个抽象的题目背景

LL 曾种过一棵树,它的名字叫黑驴树(致敬黑色环保小能手。

题目描述

这是一个抽象的题目描述

这棵树上生活着 nn 头可可爱爱的黑驴(从 11nn 编号,11 号为根),他们之间有 n1n-1 条边,每条边有一个嘿嘿值 ww.

两头黑驴 aabb 之间的啦啦点数为他们俩之间的简单路径上的嘿嘿值总和,记为 f(a,b)f(a,b).

LLqq 次没事找事,形如:

  • 11 xx yy ww 表示小 LL 将编号为 xxyy 的黑驴之间边的嘿嘿值改为 ww (保证边存在)。

  • 22 xx yy 表示小 LL 想询问以 xx 为根的子树内生活的黑驴,与以 yy 为根的子树内生活的黑驴两两之间啦啦点数之和。

    结果对998244353取模。 保证询问中两棵子树不为包含与被包含关系。

简明地说,询问:

$$Sum(x,y) = \sum_{i为x子树内的点}^{}\sum_{j为y子树内的点}^{} f(i,j) $$

格式

输入

11 行两个整数 nnqq.

22 至第 nn 行,每行三个整数 uuvvww 表示有一条 uu 号黑驴连向 vv 号黑驴的边,嘿嘿值为 ww.

n+1n+1 至第 n+qn+q 行,每行第一个数为 optopt,表示这次操作的类型。如果 opt=1opt=1,后面紧跟三个整数 xxyyww 意义如题面所述;如果 opt=2opt=2,后面紧跟两个整数 xxyy 意义如题面所述。

输出

对于每个操作 22,在一行内输出一个数表示答案。 结果对998244353取模。

样例

7 3
1 2 3
2 5 10
2 6 2
6 7 2
1 3 9
1 4 1
2 3 4
1 1 2 5
2 6 3
10
34

解释

  • 第二次询问:第二次操作将 11 号黑驴至 22 号黑驴之间的嘿嘿值从 33 变为 55.以 66 为根的子树内有两头黑驴 6677,以 33 为根的子树内有一头黑驴 33.f(3,6)=2+5+9=16f(3,6)=2+5+9=16f(3,7)=2+2+5+9=18f(3,7)=2+2+5+9=18.故 Sum(3,6)=16+18=34Sum(3,6)=16+18=34.

限制

对于所有数据,保证任何时刻边上嘿嘿值为不超过 10000001000000 的非负整数。

测试点编号 数据范围
11 ~ 44 11 \le nn, qq \le 300300
55 ~ 1010 11 \le nn, qq \le 90009000
1111 ~ 2020 11 \le nn, qq \le 200000200000