题目描述
N 頂点 N−1 辺から成る木があり、頂点には 1, 2, …, N の番号が、辺には 1, 2, …, N−1 の番号がついています。辺 i は頂点 ai と頂点 bi を結びます。 この木の各頂点には 1 つの整数が書かれています。頂点 i に書かれている整数を ci とします。はじめ、 ci = 0 です。
Q 個のクエリが与えられます。 i 番目のクエリでは、整数 ti, ei, xi が与えられます。クエリの内容は以下の通りです。
- ti = 1 のとき : 頂点 aei から辺をたどって頂点 bei を通らずに到達できるような全ての頂点 v に対して、cv を cv + xi に書き換える。
- ti = 2 のとき : 頂点 bei から辺をたどって頂点 aei を通らずに到達できるような全ての頂点 v に対して、cv を cv + xi に書き換える。
すべてのクエリを処理した後、各頂点に書かれた整数を出力してください。
输入格式
入力は以下の形式で標準入力から与えられる。
N a1 b1 ⋮ aN−1 bN−1 Q t1 e1 x1 ⋮ tQ eQ xQ
输出格式
すべてのクエリを処理した後の c1, c2, …, cN をこの順に改行区切りで出力せよ。
题目大意
给定一棵树,边形如 (ui,vi)。维护以下操作:
- opi=1,指定一条边,将所有从 ui 出发,不经过这条边就能到达的点,点权加 k。
- opi=2,指定一条边,将所有从 vi 出发,不经过这条边就能到达的点,点权加 k。
输出最终每个点的点权。初始点权为 0。
translated by
https://www.luogu.com.cn/user/367488
5
1 2
2 3
2 4
4 5
4
1 1 1
1 4 10
2 1 100
2 2 1000
11
110
1110
110
100
7
2 1
2 3
4 2
4 5
6 1
3 7
7
2 2 1
1 3 2
2 2 4
1 6 8
1 3 16
2 4 32
2 1 64
72
8
13
26
58
72
5
11
2 1
1 3
3 4
5 2
1 6
1 7
5 8
3 9
3 10
11 4
10
2 6 688
1 10 856
1 8 680
1 8 182
2 2 452
2 4 183
2 6 518
1 3 612
2 6 339
2 3 206
1657
1657
2109
1703
1474
1657
3202
1474
1247
2109
2559
提示
制約
- 入力は全て整数
- 2 ≤ N ≤ 2 × 105
- 1 ≤ ai, bi ≤ N
- 与えられるグラフは木である
- 1 ≤ Q ≤ 2 × 105
- ti ∈ {1, 2}
- 1 ≤ ei ≤ N−1
- 1 ≤ xi ≤ 109
Sample Explanation 1
1 番目のクエリでは、頂点 1 から始めて頂点 2 を通らずに到達できる頂点 1 に 1 を足します。 2 番目のクエリでは、頂点 4 から始めて頂点 5 を通らずに到達できる頂点 1, 2, 3, 4 に 10 を足します。 3 番目のクエリでは、頂点 2 から始めて頂点 1 を通らずに到達できる頂点 2, 3, 4, 5 に 100 を足します。 4 番目のクエリでは、頂点 3 から始めて頂点 2 を通らずに到達できる頂点 3 に 1000 を足します。