CF440D.Berland Federalization

提高+/省选-

通过率:0%

时间限制:1.00s

内存限制:256MB

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

Recently, Berland faces federalization requests more and more often. The proponents propose to divide the country into separate states. Moreover, they demand that there is a state which includes exactly k towns.

Currently, Berland has n towns, some pairs of them are connected by bilateral roads. Berland has only n - 1 roads. You can reach any city from the capital, that is, the road network forms a tree.

The Ministry of Roads fears that after the reform those roads that will connect the towns of different states will bring a lot of trouble.

Your task is to come up with a plan to divide the country into states such that:

  • each state is connected, i.e. for each state it is possible to get from any town to any other using its roads (that is, the roads that connect the state towns),
  • there is a state that consisted of exactly k cities,
  • the number of roads that connect different states is minimum.

最近,贝尔兰面临越来越多的联邦化要求。支持者提议将该国划分为若干个独立的州,并且特别要求其中必须存在一个恰好包含 k 座城镇的州。

目前,贝尔兰共有 n 座城镇,其中某些城镇对之间由双向道路相连。贝尔兰全国仅有 n - 1 条道路,且从首都可到达任意一座城市,即其道路网络构成一棵树。

道路部担心,改革之后,那些连接不同州的城镇的道路将会带来诸多麻烦。

你的任务是制定一个将国家划分为若干州的方案,使得:

  • 每个州都是连通的,即对每个州而言,均可仅通过该州内部的城镇之间的道路(即连接该州内城镇的道路),从其中任意一座城镇到达该州内的任何其他城镇;
  • 存在恰好由 k 座城市组成的州;
  • 连接不同州的道路数量最少。

输入格式

The first line contains integers n, k (1 ≤ k ≤ n ≤ 400). Then follow n - 1 lines, each of them describes a road in Berland. The roads are given as pairs of integers x__i, y__i (1 ≤ x__i, y__i ≤ n; x__i ≠ y__i) — the numbers of towns connected by the road. Assume that the towns are numbered from 1 to n.

第一行包含两个整数 nn、kk(1 ≤ k ≤ n ≤ 4001 ≤ k ≤ n ≤ 400)。接下来有 n − 1n - 1 行,每行描述一条贝兰国的道路。道路以整数对 xi, yix_i,\,y_i(1 ≤ xi, yi ≤ n1 ≤ x_i,\,y_i ≤ n;xi ≠ yix_i ≠ y_i)的形式给出,表示该道路连接的两个城镇编号。假设城镇编号为 11 到 nn。

输出格式

The the first line print the required minimum number of "problem" roads t. Then print a sequence of t integers — their indices in the found division. The roads are numbered starting from 1 in the order they follow in the input. If there are multiple possible solutions, print any of them.

If the solution shows that there are no "problem" roads at all, print a single integer 0 and either leave the second line empty or do not print it at all.

第一行输出所需的“问题”道路的最少数量 tt。然后输出一个包含 tt 个整数的序列——即所找到划分中这些道路的编号。道路编号从 1 开始,按输入中出现的顺序依次编号。若存在多种可能的解,输出任意一种即可。

若解表明根本不存在任何“问题”道路,则仅输出单个整数 0,第二行可留空或完全不输出。

输入输出样例

  • 输入#1

    5 2
    1 2
    2 3
    3 4
    4 5

    输出#1

    1
    2
  • 输入#2

    5 3
    1 2
    1 3
    1 4
    1 5

    输出#2

    2
    3 4
  • 输入#3

    1 1

    输出#3

    0

输入解题思路,AI测评打分。不知道怎么写?

首页