某个国家有 个城市,编号 至 ,他们之间用 条道路连接,道路是双向行驶的,沿着道路你可以到达任何一个城市。你有一个旅行计划,这个计划是从编号 的城市出发,每天到达一个你没有去过的城市,并且旅途中经过的没有去过的城市尽可能的多(如果有 条路线,经过的没有去过的城市同样多,优先考虑编号最小的城市),直到所有城市都观光过一遍。现在给出城市之间的交通图 ,以及出发地点 ,你来设计一个旅行计划,满足上面的条件。
Constraints
Solution
观察易得结论:每天的目的地必然是叶子节点,每天访问的路径一定是从叶子到根节点路径上的一段。
即据题意可以进行树上贪心,依据叶子节点的深度和编号大小进行排序后,按顺序从每个叶子往根走直到走到根节点或已访问过的节点,并进行统计。得到所有结果后再排序输出即可。
所以问题可以转化为:令每个叶子分别支配一条链,使得标号小的点尽量支配多的点,最后根据支配的点数多少、标号大小依次访问。
Code
1 |
|