310927: CF1910F. Build Railway Stations

Memory Limit:256 MB Time Limit:3 S
Judge Style:Text Compare Creator:
Submit:0 Solved:0

Description

F. Build Railway Stationstime limit per test3 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard output

Monocarp is playing a computer game where he's controlling an empire. An empire consists of $n$ cities, connected by $n - 1$ roads. The cities are numbered from $1$ to $n$. It's possible to reach every city from every other one using the roads.

Traversing every road takes $2$ hours. However, that can be improved. Monocarp can build railway stations in no more than $k$ cities. After they are built, all existing roads that connect two cities with railway stations get converted to railroads and become $1$ hour to traverse.

Let $f(x, y)$ be the total time it takes to traverse the roads on the shortest path between cities $x$ and $y$.

Monocarp wants to build at most $k$ railway stations in such a way that the following value is minimized: $\sum \limits_{v=1}^{n} \sum \limits_{u=1}^{v-1} f(v, u)$ (the total time it takes to travel from every city to every other one). What the smallest value he can achieve?

Input

The first line contains a single integer $t$ ($1 \le t \le 10^4$) — the number of testcases.

The first line of each testcase contains two integers $n$ and $k$ ($2 \le k \le n \le 2 \cdot 10^5$) — the number of cities and the maximum number of railway stations Monocarp can build.

Each of the following $n-1$ lines contains two integers $v$ and $u$ ($1 \le v, u \le n$; $v \neq u$) — a road that connects cities $v$ and $u$.

It's possible to reach every city from every other one using the roads. The sum of $n$ over all testcases doesn't exceed $2 \cdot 10^5$.

Output

For each testcase, print a single integer — the smallest total time it takes to travel from every city to every other one that Monocarp can achieve after building at most $k$ railway stations.

ExampleInput
3
5 2
1 2
2 3
3 4
4 5
4 4
1 2
1 3
1 4
5 3
1 2
1 3
2 4
2 5
Output
34
9
26

Output

题目大意:
单卡普正在玩一个控制帝国的电脑游戏。帝国由n个城市组成,通过n-1条道路相连。这些城市从1到n编号,可以通过道路从任何城市到达任何其他城市。每条道路的通行时间为2小时。但是,这可以被改进。单卡普可以在不超过k个城市中建造火车站。建造后,所有连接两个带有火车站的城市的现有道路都将转换为铁路,通行时间变为1小时。定义f(x, y)为在x和y城市之间的最短路径上通行道路的总时间。单卡普想要以这样的方式建造最多k个火车站:最小化∑∑f(v, u)(从每个城市到每个其他城市的总通行时间)。他能实现的最小值是多少?

输入数据格式:
第一行包含一个整数t(1≤t≤10^4)——测试用例的数量。
每个测试用例的第一行包含两个整数n和k(2≤k≤n≤2*10^5)——城市的数量和单卡普可以建造的最大火车站数量。
接下来的n-1行,每行包含两个整数v和u(1≤v,u≤n;v≠u)——一条连接城市v和u的道路。
所有测试用例的n之和不超过2*10^5。

输出数据格式:
对于每个测试用例,打印一个整数——单卡普在建造最多k个火车站后,从每个城市到每个其他城市的最小总通行时间。题目大意: 单卡普正在玩一个控制帝国的电脑游戏。帝国由n个城市组成,通过n-1条道路相连。这些城市从1到n编号,可以通过道路从任何城市到达任何其他城市。每条道路的通行时间为2小时。但是,这可以被改进。单卡普可以在不超过k个城市中建造火车站。建造后,所有连接两个带有火车站的城市的现有道路都将转换为铁路,通行时间变为1小时。定义f(x, y)为在x和y城市之间的最短路径上通行道路的总时间。单卡普想要以这样的方式建造最多k个火车站:最小化∑∑f(v, u)(从每个城市到每个其他城市的总通行时间)。他能实现的最小值是多少? 输入数据格式: 第一行包含一个整数t(1≤t≤10^4)——测试用例的数量。 每个测试用例的第一行包含两个整数n和k(2≤k≤n≤2*10^5)——城市的数量和单卡普可以建造的最大火车站数量。 接下来的n-1行,每行包含两个整数v和u(1≤v,u≤n;v≠u)——一条连接城市v和u的道路。 所有测试用例的n之和不超过2*10^5。 输出数据格式: 对于每个测试用例,打印一个整数——单卡普在建造最多k个火车站后,从每个城市到每个其他城市的最小总通行时间。

加入题单

上一题 下一题 算法标签: