[IOI2008] Island
You cannot submit for this problem because the contest is ended. You can click "Open in Problem Set" to view this problem in normal mode.
题目描述
你准备浏览一个公园,该公园由 个岛屿组成,当地管理部门从每个岛屿 出发向另外一个岛屿建了一座长度为 的桥,不过桥是可以双向行走的。同时,每对岛屿之间都有一艘专用的往来两岛之间的渡船。相对于乘船而言,你更喜欢步行。你希望经过的桥的总长度尽可能长,但受到以下的限制:
- 可以自行挑选一个岛开始游览。
- 任何一个岛都不能游览一次以上。
- 无论任何时间,你都可以由当前所在的岛 去另一个从未到过的岛 。从 到 有如下方法:
- 步行:仅当两个岛之间有一座桥时才有可能。对于这种情况,桥的长度会累加到你步行的总距离中。
- 渡船:你可以选择这种方法,仅当没有任何桥和以前使用过的渡船的组合可以由 走到 (当检查是否可到达时,你应该考虑所有的路径,包括经过你曾游览过的那些岛)。
注意,你不必游览所有的岛,也可能无法走完所有的桥。
请你编写一个程序,给定 座桥以及它们的长度,按照上述的规则,计算你可以走过的桥的长度之和的最大值。
输入格式
第一行包含一个整数 ,即公园内岛屿的数目。
随后的 行每一行用来表示一个岛。第 行由两个以单空格分隔的整数,表示由岛 筑的桥。第一个整数表示桥另一端的岛,第二个整数表示该桥的长度 。你可以假设对于每座桥,其端点总是位于不同的岛上。
输出格式
仅包含一个整数,即可能的最大步行距离。
7
3 8
7 2
4 2
1 4
1 9
3 4
2 3
24
提示
样例解释:
样例 座桥,分别为 以及 。注意连接岛 与岛 之间有两座不同的桥。
其中一个可以取得最大的步行距离的方法如下:
- 由岛 开始。
- 步行长度为 的桥到岛 。
- 步行长度为 的桥到岛 。
- 步行长度为 的桥到岛 。
- 搭渡船由岛 到岛 。
- 步行长度为 的桥到岛 。
最后,你到达岛 ,而你的总步行距离为 。
只有岛 没有去。注意,上述游览结束时,你不能再游览这个岛。更准确地说:
- 你不可以步行去游览,因为没有桥连接岛 (你现在的岛) 与岛 。
- 你不可以搭渡船去游览,因为你可由当前所在的岛 到达岛 。一个方法是:走 桥,再搭你曾搭过的渡船由岛 去岛 ,然后走 桥,最后走 桥。
数据范围:
对于 的数据,$2\leqslant N\leqslant 10^6,1\leqslant L_i\leqslant 10^8$。
8月7日 基环树
- Status
- Done
- Rule
- IOI
- Problem
- 8
- Start at
- 2024-8-5 7:30
- End at
- 2024-8-9 7:30
- Duration
- 96 hour(s)
- Host
- Partic.
- 24