atcoder#AGC001C. [AGC001C] Shorten Diameter

[AGC001C] Shorten Diameter

配点 : 600600

問題文

NN 頂点の木があり、頂点には 1N1 \sim N の番号がついています。N1N - 1 本の辺について、i(1iN1)i (1 \leq i \leq N-1) 本目の辺は頂点 AiA_i と頂点 BiB_i を繋いでいます。

この木の直径を KK 以下にするために削除する必要のある頂点数の最小値を求めてください。 ただし、頂点を削除した後のグラフは連結になっていなければなりません。

木の直径とは、22 つの頂点間の距離の最大値のことを指します。22 つの頂点間の距離とは、22 つの頂点を結ぶパスに含まれる辺の本数を指します。

制約

  • 2N20002 \leq N \leq 2000
  • 1KN11 \leq K \leq N-1
  • 1AiN,1BiN1 \leq A_i \leq N, 1 \leq B_i \leq N
  • 与えられるグラフは木である。

入力

入力は以下の形式で標準入力から与えられる。

NN KK

A1A_1 B1B_1

A2A_2 B2B_2

:

AN1A_{N-1} BN1B_{N-1}

出力

直径を KK 以下にするために削除する必要のある頂点数の最小値を出力せよ。

6 2
1 2
3 2
4 2
1 6
5 6
2

木の構造は図のとおりです。 頂点 5,65,6 を削除すると直径を 22 に出来ます。

ctree.png

6 5
1 2
3 2
4 2
1 6
5 6
0

すでに直径が KK 以下なので、頂点を削除する必要はありません。