3749: 大陆(第四轮03)

内存限制:256 MB 时间限制:1.000 S
评测方式:文本比较 命题人:
提交:2 解决:0

题目描述

欧艾大陆由 n  个城市组成,呈树形结构。每一个城市就是一个树上的顶点, 由 无向边相连。

为了方便管理,国王 crying  希望能够将欧艾大陆的城市分成若干个省,使得每 个城市都恰好在一个省内。

crying  是一个理智的人, 经过精密的统计和计算, 他认为每个省应该满足以下 条件:

不能包含太多或太少的城市:即大小应该在  [B, 3 × B]   内,其中  B  是一个给 定的参数。

- 需要指定一个城市作为这个省的省会,与地球人的常识不同,这个省的省会可 以不属于这个省,且一个城市可以作为多个省的省会,但是对于每个城市 x,如 果该城市所属于的省的省会是 y, 那么  (x, y)  之间的简单路径上的所有点都要 满足和 x  在同一个省。

你作为国王的首席智囊团,需要帮助他找到一组满足条件的划分方法。 如果有多组划分方案,只需要其中一组即可。

数据保证存在至少一种划分方案。

输入

第一行两个正整数 n, B,表示城市的总数和对省份大小的限制。

接下来 n − 1  行,每行两个正整数  x, y,描述一条边。

输出

第一行一个正整数 `k`,表示将图划分成的省的个数。

第二行 n  个数  a1  , a2  , … , an , ai  表示第  i  个城市属于哪一个省。 第三行 k  个数 b1, b2 , … , b k, bi  表示第 i  个省的省会城市。

请保证 k ≤ n,可以证明,必然存在一种 k ≤ n  的划分方案。

样例输入 复制

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

样例输出 复制

3
2 1 1 3 3 3 3 2
2 1 8

提示

【数据范围】

对于 40%  的数据, n ≤ 100。

对于  100%  的数据, 1 ≤ B ≤ n ≤ 10000,保证给定的图是一棵树。


来源/分类