题目名称 | 530. [IOI 2008] 岛屿 |
---|---|
输入输出 | isl.in/out |
难度等级 | ★★★☆ |
时间限制 | 1200 ms (1.2 s) |
内存限制 | 256 MiB |
测试数据 | 20 |
题目来源 | cqw 于2011-03-11加入 |
开放分组 | 全部用户 |
提交状态 | |
分类标签 | |
分享题解 |
通过:15, 提交:133, 通过率:11.28% | ||||
嗨嗨嗨 | 100 | 0.261 s | 22.65 MiB | C++ |
嗨嗨嗨 | 100 | 0.268 s | 24.63 MiB | C++ |
健康铀 | 100 | 0.369 s | 32.05 MiB | C++ |
在大街上倒立游泳 | 100 | 0.432 s | 43.87 MiB | C++ |
liuyiche | 100 | 0.598 s | 24.36 MiB | C++ |
┭┮﹏┭┮ | 100 | 0.653 s | 42.04 MiB | C++ |
┭┮﹏┭┮ | 100 | 0.664 s | 40.54 MiB | C++ |
小金 | 100 | 0.759 s | 28.14 MiB | C++ |
onlysky | 100 | 0.796 s | 111.89 MiB | C++ |
huzecong | 100 | 0.845 s | 75.63 MiB | C++ |
本题关联比赛 | |||
20110311 | |||
20110311 |
关于 岛屿 的近10条评论(全部评论) | ||||
---|---|---|---|---|
讲个笑话,调了俩小时单调队列最后发现是子树直径DP错了
在大街上倒立游泳
2024-01-02 19:37
2楼
| ||||
浪费我1坤时阳寿
|
[问题描述]
你将要游览一个有 N 个岛屿的公园。从每一个岛 i 出发 ,只建造一座 桥。桥的长度以 Li 表示。公园内总共有 N 座桥。 尽管每座桥由一个岛连到另一个岛,但每座桥均可以双向行走。同时,每一对这样的岛屿,都有一艘专用的往来两岛之间的渡船。
相对于乘船而言,你更喜欢步行。 你希望所经过的桥的总长度尽可能的长,但受到以下的限制。
可以自行挑选一个岛开始游览。
注意,你不必游览所有的岛,也可能无法走完所有的桥。
任务
编写一个程序,给定 N 座桥以及它们的长度,按照上述的规则,计算你可以走过的桥的最大长度。
限制
2 <= N <= 1,000,000 公园内的岛屿数目。
1<= Li <= 100,000,000 桥 i 的长度。
输入
你的程序要从输入文件读入以下数据:
输出
你的程序必须向输出文件写出包含一个整数的单一行,即可能的最大步行距离。
注:对某些测试,答案可能无法放进 32-bit 整数,你要取得这道题的满分,可能需要用 Pascal 的 int64 或 C/C++ 的 long long 类型。
评分
有总计 40 分的测试数据,其中 N 不会超过 4,000 。
样例输入
7 3 8 7 2 4 2 1 4 1 9 3 4 2 3
样例输出
24
提示
样例有N=7 座桥,分别为 (1−3),(2−7),(3−4),(4−1),(5−1),(6−3) 以及 (7−2)。注意连接岛 2 与岛 7 之间有两座不同的桥。
其中一个可以取得最大的步行距离的方法如下:
由岛 5 开始。
步行长度为 9 的桥到岛 1。
步行长度为 8 的桥到岛 3。
步行长度为 4 的桥到岛 6。
搭渡船由岛 6 到岛 7。
步行长度为 3 的桥到岛 2。
最后,你到达岛 2,而你的总步行距离为 9+8+4+3=24。
只有岛 4 没有去。注意,上述游览结束时,你不能再游览这个岛。更准确地说:
你不可以步行去游览,因为没有桥连接岛 2 (你现在的岛) 与岛 4。
你不可以搭渡船去游览,因为你可由当前所在的岛 2 到达岛 4。一个方法是:走 (2−7) 桥,再搭你曾搭过的渡船由岛 7 去岛 6,然后走 (6−3)桥,最后走 (3−4)桥。