#L3550. 「COI 2020」Pastiri
「COI 2020」Pastiri
题目描述
给定一棵 个节点的树,节点编号为 到 。现在有 只羊分布在树上的 个节点上。
你的任务是在树上分配一些牧羊人,牧羊人遵循以下规则:
-
每个牧羊人只会看管离他最近的羊
-
如果有多只羊与牧羊人的距离相等,那么他会看管所有这些羊
-
牧羊人可以和羊在同一个节点上,此时他只看得管该节点上的羊
目标是:找到一种牧羊人的分配方案,使得每个羊至少被一个牧羊人看管,并且使用的牧羊人总数最少。
输入格式
第一行:两个整数 和 ,分别表示树的节点数和有羊的节点数
接下来 行:每行两个整数 ,表示树的一条边
第 行: 个整数 ,表示有羊的节点编号
输出格式
第一行:一个整数 ,表示牧羊人总数的最小值
第二行: 个整数,表示每个牧羊人分配到的节点编号
注:如果有多种解,输出任意一种即可
20 9
1 2
2 3
2 4
4 5
4 6
5 7
7 8
8 9
7 10
10 11
6 12
6 13
6 17
13 14
14 15
14 16
17 18
18 19
18 20
1 3 9 11 12 15 16 19 20
3
5 14 18
数据规模与约定