#L0684. 新建道路最小巡逻距离

新建道路最小巡逻距离

题目描述

某地区有 nn 个村庄,编号为 1,2,,n1, 2, \dots, n,由 n1n-1 条道路连成一棵树,每条道路长度为 11。巡警车每天从编号 11 的警察局出发,遍历所有道路后返回警察局。

为了缩短巡逻路线,地区计划新建 KK 条道路(K=1K=1K=2K=2),每条新道路可连接任意两个村庄(包括同一个村庄的自环),且巡警车必须恰好经过每条新建道路一次。请计算新建 KK 条道路后能达到的最小巡逻距离。

下图展示了一个有 88 个村庄的地区(村庄 11 为黑色),原始巡逻需走 1414 个单位距离。

在方案 (a) 中新建一条道路,总距离降为 1111;方案 (b) 新建两条道路,总距离为 1010;方案 (c) 新建两条道路但总距离反升至 1515

输入格式

第一行包含两个整数 nnKK1K21 \le K \le 2)。

接下来 n1n-1 行,每行两个整数 a,ba,b,表示村庄 aabb 之间有一条道路(1a,bn1 \le a,b \le n)。

输出格式

输出一个整数,表示新建 KK 条道路后能达到的最小巡逻距离。

样例

8 1 
1 2 
3 1 
3 4 
5 3 
7 5 
8 5 
5 6
11
8 2 
1 2 
3 1 
3 4 
5 3 
7 5 
8 5 
5 6
10
5 2 
1 2 
2 3 
3 4 
4 5
6

提示

  • 10%10\% 的数据中,1n1000,K=11 \le n \le 1000, K=1
  • 30%30\% 的数据中,K=1K=1
  • 80%80\% 的数据中,每个村庄相邻的村庄数不超过 2525
  • 90%90\% 的数据中,每个村庄相邻的村庄数不超过 150150
  • 100%100\% 的数据中,3n105,1K23 \le n \le 10^5, 1 \le K \le 2
难度 提高
通过率
尝试 0
已通过 0
ID
1412
类型
传统题
Time Limit
1000ms
Memory Limit
128MiB
上传者