题目描述
一棵以 1 为根的 ( n ) 个节点的树。( A, B ) 两人在树上操作,一人只操作一次。一开始节点全为白色。
A 先操作,在树上取任意多个子树,将子树内部节点染红,要求所有子树节点数总和不超过 ( k )。
B 后操作,在树上选任意多个子树,所有子树内部无红色节点。将子树内部染蓝。
最后假设有 ( r ) 个红色节点,( b ) 个蓝色节点和 ( w ) 个白色节点,则分数为 ( w \times (r - b) )。A 想让分数大,B 想让分数小,若两人都很聪明,问最后分数是多少。
输入格式
第一行一个整数 ( id ),表示子任务编号。
第二行包含两个整数 ( n ) 和 ( k ) (( 2 \leq n \leq 2 \cdot 10^5; \, 1 \leq k \leq n )),分别表示树中的 顶点数和红色节点的最大数量。
接下来 ( n-1 ) 行描述树的边。第 ( i ) 行包含两个用空格分隔的整数 ( u_i ) 和 ( v_i ) (( 1 \leq u_i, v_i \leq n; \, u_i \neq v_i )),代表第 ( i ) 条边连接的两个顶点。
题目保证给出的边能构成一棵树(即无环连通图)。
输出格式
输出一个整数,即当红方和蓝方都采取最优策略时,最终得到的得分。
样例输入1
2
4 2
1 2
1 3
1 4
样例输出1
1
样例输入2
2
5 2
1 2
2 3
3 4
4 5
样例输出2
6
样例输入3
4
7 2
1 2
1 3
4 2
3 5
6 3
6 7
样例输出3
4
样例输入4
1
4 1
1 2
1 3
1 4
样例输出4
-1
子任务
| 子任务编号 | 分值 | 限制条件 |
|---|---|---|
| Subtask 1 | 10 | ( k = 1 ) |
| Subtask 2 | 15 | 树的形态为一条链或一张星状图 |
| Subtask 3 | 20 | ( k \geq L )(( L )为树的叶子节点个数) |
| Subtask 4 | 25 | ( n \leq 2000 ) |
| Subtask 5 | 30 | ( n \leq 2 \cdot 10^5 ) |
