CF440D Berland Federalization

题目描述

最近,Berland 面临着越来越重的联邦化的要求。许多支持者建议将国家分成几个独立的州。此外,她们还要求有一个州恰好包含 k 个城市。 现在,Berland 有 n 个城市,有一些城市间通过双向道路连接,共有 n−1 条道路,组成树形结构。 政府害怕分离后,连接不同州的道路会惹麻烦,所以她们提出了如下要求: 每一个州是一个连通块,即每个州内部是互相连通的。 存在一个州,它恰好包含 k 个城市。 连接不同州的道路数量尽可能小。 你的任务就是想出一个方案,使得满足上述要求的同时,让连接不同州的道路数量达到最小值。

输入格式

第一行包含两个正整数 $n,k(1≤k≤n≤400)$。 接下来的 n−1 行,每行描述一条道路,其中包含两个整数 $xi,yi(1≤xi≠yi≤n)$,表示有一条道路连接城市 xi 和 yi。

输出格式

第一行输出一个整数,表示连接不同州的道路数量的最小值 t。 第二行输出 t 个整数,表示连接不同州的道路对应的编号 (按照输入中的顺序以 1∼n−1 给道路编号)。