#agc001c. [agc001_c]Shorten Diameter

[agc001_c]Shorten Diameter

题目描述

给定一个无向树,定义顶点uuvv之间的距离为从uuvv的简单路径上的边的数量。树的直径是任意两个顶点之间距离的最大值。当且仅当树的直径不超过KK时,我们称这棵树为_good_。

给定一个由NN个顶点(11NN编号)组成的无向树。对于每个i(1iN1)i(1≦i≦N-1),有一条边连接顶点AiA_iBiB_i

你想要从树中删除零个或多个顶点,使得得到的树是_good_。当顶点被删除时,所有与之关联的边也将被删除。所得到的图必须是连通的。

找出需要删除的顶点的最小数量,以便生成一棵_good_树。

约束条件

  • 2N20002≦N≦2000
  • 1KN11≦K≦N-1
  • 1AiN,1BiN1≦A_i≦N, 1≦B_i≦N
  • AiA_iBiB_i所定义的图是一棵树。

输入

输入在以下格式中从标准输入给出:

NN KK A1A_1 B1B_1 A2A_2 B2B_2 : AN1A_{N-1} BN1B_{N-1}

输出

打印你需要删除的顶点的最小数量,以便生成一棵_good_树。


样例输入 1

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

样例输出 1

2

以下是该树的示意图。删除顶点5566将得到直径为22的_good_树。

ctree.png


样例输入 2

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

样例输出 2

0

由于给定的树已经是_good_树,你不需要删除任何顶点。