#P14872. [OOI2024 资格赛]Paired roads成对道路
[OOI2024 资格赛]Paired roads成对道路
题目描述
某个国家有 座城市,目前还没有建任何道路。第 座城市有 人口。还有 条候选道路可以修建。第 条道路如果被修建,将连接城市 和 ,修建费用为 。
如果把所有候选道路都修建起来,那么任意城市之间都可以互相到达。也就是说,这些候选道路构成一棵树。
接下来的 天中,每天会发生如下事件:在第 天,选择一座城市 ,并选择两条尚未修建且都连接 与其他城市的不同道路。然后修建这两条道路,并支付费用,费用等于这两条道路修建费用之和。城市 会被认为是第 天的中心城市。
天后,每个至少作为中心城市出现过一次的城市会产生收益,收益等于该城市的人口数量。
定义收益值 benefit 为:
请你求出最大可能的收益值。
输入格式
第一行包含三个整数 (,,),分别表示城市数、要修建的道路对数,以及是否需要输出具体方案。若 ,则需要输出修建方案;若 ,则只需要输出最大收益值。
第二行包含 个整数 (),表示每座城市的人口。
接下来 行,每行包含三个整数 (,),表示第 条候选道路连接的两座城市和修建费用。
保证候选道路构成一棵树,并且存在满足条件的方式修建 对道路。
输出格式
第一行输出一个整数,表示修建恰好 对道路后可以得到的最大收益值。
如果 ,接下来输出 行,每行包含三个整数 (),表示第 天修建道路 和 ,中心城市为 。
如果存在多种最优方案,输出任意一种。
样例 #1
样例输入 #1
6 2 1
1 2 3 4 5 6
1 2 1
2 3 5
2 4 3
1 5 2
5 6 4
样例输出 #1
-3
5 6 1
2 4 1
样例 #2
样例输入 #2
8 3 0
4 5 1 2 3 1 3 5
2 1 15
7 1 5
4 8 1
8 5 2
7 8 1
6 7 5
3 7 7
样例输出 #2
-13
样例解释
第一个样例中,最优方案中修建的道路如下,同一对道路在原题图中用相同颜色标记:

第一个样例的最优建路方案。
修建道路的总费用为 。修建完成后,城市 和 产生收益,分别为 和 。因此收益值为:
可以证明无法得到更好的答案。
第二个样例中,最优方案如下:

第二个样例的最优建路方案。
修建道路的总费用为 。修建完成后,城市 和 产生收益,分别为 和 。因此收益值为:
可以证明无法得到更好的答案。
评分方式
测试数据包含 7 个测试组。只有通过该组以及若干指定的前置测试组,才能获得该组分数。Offline-testing 表示该组结果只会在比赛结束后公布。
| 组别 | 分数 | 附加限制 | 附加限制 | 依赖组 | 备注 |
|---|---|---|---|---|---|
| 0 | - | - | 样例 | ||
| 1 | 13 | - | |||
| 2 | 17 | 1 | |||
| 3 | 12 | - | 0-2 | ||
| 4 | 19 | - | - | ||
| 5 | 11 | - | 4 | ||
| 6 | 15 | 1,2,4 | Offline-testing | ||
| 7 | 13 | - | 0-6 | ||