AT_scpc2026_div1_l Lulu, the Magician
Description
#### 表示言語
/ / ルルは実は天才魔法使いである.ルルは長い研究の末,魔法陣を活用した自分だけの秘伝の魔法を開発した.
ルルが扱う魔法陣は, $ N $ 個の魔法と $ N-1 $ 個の接続関係からなる木構造である.各魔法には $ 1 $ から $ N $ まで順に番号が付いており,ルルはそれらを強化できる.魔法陣の $ i $ 番目の接続関係は,魔法 $ a_i $ と魔法 $ b_i $ が互いに直接つながっていることを意味する.
最初,すべての魔法の威力は $ 0 $ である.ルルが魔法 $ r $ を $ w $ だけ強化すると, $ r $ の威力 $ W_r $ が $ w $ だけ増加する.
ルルは魔法陣の $ 2 $ つの魔法 $ u $ と $ v $ を選んで魔法を詠唱できる.ルルが魔法を詠唱すると,魔法陣にあるすべての魔法が, $ u $ と $ v $ を結ぶ唯一の単純パス上にある頂点の集合 $ P(u,v) $ と相互作用する.ルルが詠唱した魔法の最終威力は次の式で計算できる.ここで, $ d(a,b) $ は $ a $ と $ b $ を結ぶ唯一の単純パス上にある辺の本数である.
$ \sum_{x \in P(u, v)} \sum_{r=1}^{N} W_r \times d(r, x) $
天才魔法使いルルは,次の $ 2 $ 種類の行動を順に $ Q $ 回行いながら,魔法を身につけようとしている.
- `1 v w`: 魔法 $ v $ の威力を $ w $ だけ増加させる.
- `2 u v`: 魔法 $ u $ と魔法 $ v $ を選んで魔法を詠唱する.
タイプ $ 2 $ の行動を行うたびに,詠唱した魔法の最終威力を $ 998\,244\,353 $ で割った余りを計算しよう.
Input Format
入力は以下の形式で標準入力から与えられる.
> $ 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 $
Output Format
タイプ $ 2 $ の行動を行うたびに,詠唱した魔法の最終威力を $ 998\,244\,353 $ で割った余りを $ 1 $ 行に出力せよ.
Explanation/Hint
### Constraints
- $ 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 $ である.
- 入力される数値はすべて整数である.