A24634.道路削减
普及/提高-
通过率:0%
时间限制:2.00s
内存限制:256MB
题目描述
时间限制:2000ms
内存限制:256MB
现有 N 座城市 1,2,…,N 和 M 条道路 1,2,…,M。
城市 Ai 和 Bi 由一条长度为 Ci 的双向道路 i 连接。
可以通过某些道路在任意两座城市之间通行。
现希望只保留 N−1 条道路,并且使用保留的道路仍然可以来往于任意两个城市之间。
令 di 是仅使用保留的道路时,从城市 1 到城市 i 的最短路径。
请你输出一种道路的选择方案,使 d2+d3+…+dN 最小。
数据范围
- 2≤N≤2×105
- N−1≤M≤2×105
- 1≤Ai<Bi≤N
- (Ai,Bi)=(Aj,Bj) 若 i=j.
- 1≤Ci≤109
- 可以通过某些道路在任意两座城市之间通行。
- 所有输入数值均为整数。
输入格式
对于每个测试文件输入格式如下:
N M
A1 B1 C1
A2 B2 C2
⋮
AM BM CM
输出格式
按任意顺序输出要保留的道路编号,中间用空格隔开。
如果存在多个解决方案,输出任意一个即可。
输入输出样例
输入#1
3 3 1 2 1 2 3 2 1 3 10
输出#1
1 2
输入#2
4 6 1 2 1 1 3 1 1 4 1 2 3 1 2 4 1 3 4 1
输出#2
3 1 2
说明/提示
样例 1:
以下是可能选择维护的道路以及 di 对应的值。
- 维护道路 1 和 2:d2=1, d3=3 .
- 维护道路 1 和 3:d2=1, d3=10 .
- 维护道路 2 和 3:d2=12, d3=10 .
因此,维护道路 1 和 2 可以最大限度地减少 d2+d3。