問題一覧 > 通常問題

No.2439 Fragile Apple Tree

レベル : / 実行時間制限 : 1ケース 10.000秒 / メモリ制限 : 512 MB / 標準ジャッジ問題
タグ : / 解いたユーザー数 19
作問者 : kenken714kenken714 / テスター : tatyamtatyam ebi_flyebi_fly noya2noya2 👑 potato167potato167 tassei903tassei903
3 ProblemId : 9996 / 出題時の順位表 / 自分の提出
問題文最終更新日: 2023-08-18 20:48:58

注意:この問題の実行時間制限は $1$ ケース当たり $10$ 秒です。

問題文

$N$ 頂点の根付き木が与えられます。
頂点は $1,2,\dots,N$ 、辺は $1,2,\dots,N-1$ と番号付けされており、 頂点 $1$ はこの根付き木の根です。 $i$ 番目の辺は $a_i$ と $b_i$ を結んでいます。

各辺には強度が定義されており、 $i$ 番目の辺の強度は $c_i$ です。
根を除く各頂点には、 $0$ 個以上のりんごを置くことができます。初めは、各頂点にはりんごが一つも置かれていません。
あなたは、これから「木の (根を除く) 頂点を $1$ つ選び、その頂点にいくつかのりんごを置く」という操作を何回か行います。
りんごが置かれた後、辺 $i$ が以下の条件を満たした場合、辺 $i$ は破壊され、辺 $i$ と、辺 $i$ に繋がっている根を含まない部分木は、根付き木から除外されます。

  • 辺 $i$ に繋がっている根を含まない部分木を $T$ 、 $T$ に含まれる頂点に置かれているりんごの総数を $S_T$ として、 $c_i \le S_T$ を満たす。
破壊される条件を同時に満たす辺が複数ある場合、一番根から距離が遠い辺のみが破壊されます。
(このような辺は一意に定まることが証明できます。また、この辺を破壊すると、破壊される条件を満たす辺が他に存在しなくなることが証明できます。)

$Q$ 個のクエリを順に処理してください。クエリの入力形式と内容は以下の通りです。

  • 1 v x : 頂点 $v$ に $x$ 個のりんごを置く(追加する)。
  • 2 : クエリが与えられた時点での、根付き木の頂点の個数を出力する。

制約

  • $2\le N \le 3 \times 10^5$
  • $1 \le Q \le 3 \times 10^5$
  • $1 \le a_i,b_i \le N$
  • $1 \le c_i \le 10^{15}$
  • $2 \le v \le N$
  • $1 \le x \le 10^9$
  • クエリ $2$ が $1$ つ以上含まれる
  • 頂点 $v$ は、クエリが与えられた時点で根付き木に含まれる
  • 入力で与えられるグラフは木
  • 入力で与えられる値は全て整数

入力

入力は以下の形式で与えられます。

$N\ Q$
$a_{1}\ b_{1}\ c_{1}$
$a_{2}\ b_{2}\ c_{2}$
$\vdots$
$a_{N-1}\ b_{N-1}\ c_{N-1}$
$query_1$
$query_2$
$\vdots$
$query_{Q}$

ここで、 $query_i$ は、 $i\ (1 \le i \le Q)$ 番目のクエリを表し、次のいずれかの入力形式で与えられます。

$1\ v\ x$
$2$

出力

2というクエリの度に答えを出力し、改行してください。

サンプル

サンプル1
入力
5 6
1 2 5
3 2 3
4 2 7
5 4 1
1 5 5
2
1 3 3
2
1 4 6
2
出力
4
3
1


このサンプルケースでは上のような木が与えられます。
$1$ つ目のクエリでは、頂点 $5$ に $5$ 個のりんごが置かれます。
この時、頂点 $1$ と $2$ を結ぶ辺、および頂点 $4$ と $5$ を結ぶ辺が破壊される条件を満たしますが、このうち根から遠い頂点 $4$ と $5$ を結ぶ辺が破壊されます。
$2$ つ目のクエリでは、現在の根付き木の頂点数を答えます。頂点 $1, 2, 3, 4$ が残っているため、答えは $4$ です。
$3$ つ目のクエリでは、頂点 $3$ に $3$ 個のりんごが置かれます。この時、頂点 $2$ と $3$ を結ぶ辺が破壊されます。
$4$ つ目のクエリでは、現在の根付き木の頂点数を答えます。頂点 $1, 2, 4$ が残っているため、答えは $3$ です。
$5$ つ目のクエリでは、頂点 $4$ に $6$ 個のりんごが置かれます。この時、頂点 $1$ と $2$ を結ぶ辺が破壊されます。
$6$ つ目のクエリでは、現在の根付き木の頂点数を答えます。頂点 $1$ のみが残っているため、答えは $1$ です。

サンプル2
入力
2 1
1 2 1000000000000000
2
出力
2

りんごが $1$ つも置かれていないため、辺の破壊は起こりません。

サンプル3
入力
12 11
1 2 361648772
1 3 476190629
1 4 471407775
1 5 322804784
2 6 482631932
4 7 423078537
3 8 410286918
3 9 303238506
8 10 273361868
6 11 339296263
11 12 384836991
1 6 782177068
2
1 7 954291757
1 8 840594328
2
1 5 501899080
1 2 910748511
1 3 31262034
1 3 131381221
1 9 816248153
2
出力
9
6
3

提出するには、Twitter 、GitHub、 Googleもしくは右上の雲マークをクリックしてアカウントを作成してください。