死宅选点
题号:NC21165
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 512 M,其他语言1024 M
64bit IO Format: %lld

题目描述

从前有一个死宅, 他非常懒而且懒得动弹, 以至于想走最少的路来完成日常活动.
现在告诉你他活动的n个地点以及连接这些地点的n-1条道路,保证图联通.
定义一条路径u到v的厌恶度为  ,其中m为u到v最短路径上点的个数
他想选择一个地点居住, 使得这个地点到其他所有地点的路径的厌恶度之和最小.

输入描述:

一行两个数n,k
接下来n-1行,每行2个数u,v表示存在一条从u到v的边.

输出描述:

一行一个整数表示使厌恶度之和最小的点, 若有多个点厌恶度之和相同. 输出编号最小的一个.
示例1

输入

复制
4 2
1 2 
2 3
2 4

输出

复制
2

说明

2号点到1, 3, 4点的路径的厌恶度都是2,厌恶度总和为 6
1, 3, 4到其它点的路径厌恶度之和均为2 + 6 + 6 = 14

备注:

数据范围
- 对于前10%的数据, n ≤ 10;
- 对于另外20%的数据, n ≤ 500 且 保证图为一条链;
- 对于另外20%的数据, n ≤ 500, k = 2;
- 对于另外20%的数据, k = 1;
- 对于100%的数据,n ≤ 20000, k ≤ 10,除 对于20%的数据保证图为一条链外 图保证随机!!!