#P2573. 滑雪(Skiing)
0
滑雪(Skiing)
滑雪(Skiing)
题目描述
a180285 非常喜欢滑雪。他来到一座雪山,这里分布着 条供滑行的轨道和 个轨道之间的交点(同时也是景点),而且每个景点都有一编号 和一高度 。
a180285 能从景点 滑到景点 当且仅当存在一条 和 之间的边,且 的高度不小于 。与其他滑雪爱好者不同,a180285 喜欢用最短的滑行路径去访问尽量多的景点。如果仅仅访问一条路径上的景点,他会觉得数量太少。
于是 a180285 拿出了他随身携带的时间胶囊。这是一种很神奇的药物,吃下之后可以立即回到上个经过的景点(不用移动也不被认为是 a180285 滑行的距离)。
请注意,这种神奇的药物是可以连续食用的,即能够回到较长时间之前到过的景点(比如上上个经过的景点和上上上个经过的景点)。 现在,a180285 站在 号景点望着山下的目标,心潮澎湃。他十分想知道在不考虑时间胶囊消耗的情况下,以最短滑行距离滑到尽量多的景点的方案(即满足经过景点数最大的前提下使得滑行总距离最小)。你能帮他求出最短距离和景点数吗?
输入格式
输入的第一行是两个整数 。接下来一行有 个整数 ,分别表示每个景点的高度。
接下来 行,表示各个景点之间轨道分布的情况。每行三个整数 ,表示编号为 的景点和编号为 的景点之间有一条长度为 的轨道。
输出格式
输出一行,表示 a180285 最多能到达多少个景点,以及此时最短的滑行距离总和。
样例输入 #1
3 3
3 2 1
1 2 1
2 3 1
1 3 10
样例输出 #1
3 2
数据范围
对于 的数据,;
对于 的数据,$1 \le n \le 10^5 , 1 \le m \le 10^6 , 1 \le h_i \le 10^9 , 1 \le k_i \le 10^9$。
知识点与难度
本题涉及的知识点从属于 CSP-S,难度(CF Rating):1850。
测试点分布
| Subtask | 分值 | 测试点编号 | 说明 |
|---|---|---|---|
| 0 | 10 | 1 | 样例 |
| 1 | 20 | 2~8 | 小规模 n≤2000 / 特殊: 起点高度最低仅能到达1个点 / 特殊: 等高平台双向滑行 |
| 2 | 9~14 | 中等规模 n≤30000,m≤100000 / Hack: 低高度反跳陷阱(普通无向Kruskal错误) | |
| 3 | 30 | 15~21 | 大规模 n≤100000,m≤300000 分层导向Kruskal与64位距离和测试 |
| 4 | 20 | 22~25 | 满规模 n=100000,m≤1000000 极限边数压力测试 |
出处:原题链接