#P12640. [UOI 2020] Add edges
[UOI 2020] Add edges
Description
给定一棵包含 个顶点和 条边的树。需要在这棵树上添加恰好 条新边。不允许添加重边或自环。如果某个顶点在添加边之前的度数为 ,那么在添加边之后,其度数不得超过 。注意顶点的度数是指与其相连的边的数量。
此外,给定 个整数 。添加边后,需要为每条边分配数组 中的一个元素,且每个数组元素恰好对应一条边。分配给边的值 表示其权重。
需要以如下方式添加新边并为边分配数值:使得所有顶点对之间的最短距离之和 最大化。即需要最大化函数 ,其中 是顶点 和 ()之间的最小距离。顶点之间的最小距离是指它们之间简单路径上所有边的权重之和。
请注意,本题不需要提交代码,而是需要提交实际答案。你可以访问所有测试数据。
Input Format
共有 个测试用例。
每个测试用例的第一行包含三个整数 、 和 (,,)——树中的顶点数量、需要添加的边数以及每个顶点可以添加的最大边数。
第二行包含 个整数 ()。
接下来的 行,每行包含两个整数 和 ()——表示初始树中相连的顶点编号。保证初始给定的图是一棵树。
保证总能以符合题目要求的方式添加边。
Output Format
对于每个测试用例,输出以下内容:
如果你有该测试用例的答案,输出 ,否则输出 。
如果有答案,则在接下来的 行中,每行输出三个整数 、 和 ——表示最终图中相连的顶点编号及其边的权重。
Hint
设 是测试用例中的某个基准值, 为你的图中所有顶点对距离之和。如果 ,你将获得该测试用例的 分。否则,你将获得的分数为:
如果 是所有测试用例得分的总和,则本次提交将获得四舍五入后的整数 分。
京公网安备 11011102002149号