AT_scpc2026_div1_l Lulu, the Magician
题目描述
Lulu 实际上是一位天才魔法师。经过长时间的研究,Lulu 利用魔法阵开发出了属于自己的秘密魔法。
Lulu 使用的魔法阵是一棵包含 $N$ 个咒语和 $N-1$ 条连接的树结构。咒语按顺序编号为 $1$ 到 $N$,Lulu 可以为每个咒语进行强化。魔法阵中的第 $i$ 条连接表示咒语 $a_i$ 和咒语 $b_i$ 直接连接。
初始时,每个咒语的能量为 $0$。当 Lulu 将第 $r$ 个咒语强化 $w$ 点时,第 $r$ 个咒语的能量 $W_r$ 增加 $w$。
Lulu 可以选择魔法阵中的两个咒语 $u$ 和 $v$ 施展魔法。施展魔法时,魔法阵中的每个咒语都会与 $P(u, v)$ 集合中的所有点产生作用,其中 $P(u, v)$ 表示连接 $u$ 和 $v$ 的唯一一条简单路径上的结点集合。Lulu 施展的魔法最终能量可以按如下公式计算。这里 $d(a,b)$ 表示从 $a$ 到 $b$ 的唯一一条简单路径上的边数:
$$
\sum_{x \in P(u, v)} \sum_{r=1}^{N} W_r \times d(r, x)
$$
天才魔法师 Lulu 想要通过以下两种操作(共 $Q$ 次,按顺序进行)进行魔法的学习:
- `1 v w`:将第 $v$ 个咒语的能量增加 $w$。
- `2 u v`:选择咒语 $u$ 和 $v$,施展一次魔法。
对于每个类型为 $2$ 的操作,请输出施展的魔法最终能量对 $998\,244\,353$ 取模的结果。
输入格式
输入格式如下:
> $N$ $Q$ $a_1$ $b_1$ $a_2$ $b_2$ $\vdots$ $a_{N-1}$ $b_{N-1}$ $\mathrm{action}_1$ $\mathrm{action}_2$ $\vdots$ $\mathrm{action}_Q$
输出格式
对于每个类型为 $2$ 的操作,输出一行,表示所施展魔法的最终能量对 $998\,244\,353$ 取模后的结果。
说明/提示
### 数据范围
- $1 \leq N, Q \leq 200\,000$
- $1 \leq a_i, b_i \leq N$
- $a_i \ne b_i$
- 给定的魔法阵是一棵树。
- 对于操作 `1 v w`,有 $1 \leq v \leq N$,$1 \leq w \leq 10^9$。
- 对于操作 `2 u v`,有 $1 \leq u, v \leq N$。
- 所有输入均为整数。
由 ChatGPT 5 翻译