题目名称 348. 免费航班
输入输出 freeline.in/out
难度等级 ★★☆
时间限制 1000 ms (1 s)
内存限制 128 MiB
测试数据 10
题目来源 GravatarBYVoid 于2009-06-12加入
开放分组 全部用户
提交状态
分类标签
动态规划 连通性
分享题解
通过:12, 提交:35, 通过率:34.29%
Gravatar 100 0.143 s 5.88 MiB C++
Gravatartest 100 0.160 s 12.45 MiB C++
GravatarChtholly 100 0.184 s 35.79 MiB C++
GravatarChtholly 100 0.193 s 35.79 MiB C++
GravatarChtholly 100 0.226 s 35.79 MiB C++
Gravatarvector 100 0.241 s 12.75 MiB C++
Gravatarvector 100 0.312 s 15.71 MiB C++
Gravatarvector 100 0.316 s 15.71 MiB C++
GravatarBYVoid 100 0.697 s 19.18 MiB C++
GravatarPom 100 0.702 s 19.80 MiB C++
关于 免费航班 的近10条评论(全部评论)
那你牛得不行
Gravatar
2017-05-19 21:33 2楼
我一定要 AC
Gravatar0
2015-07-29 21:44 1楼

348. 免费航班

★★☆   输入文件:freeline.in   输出文件:freeline.out   简单对比
时间限制:1 s   内存限制:128 MiB

问题描述

小Z在MOI比赛中获得了大奖,奖品是一张特殊的机票。使用这张机票,可以在任意一个国家内的任意城市之间的免费飞行,只有跨国飞行时才会有额外的费用。小Z获得了一张地图,地图上有城市之间的飞机航班和费用。已知从每个城市出发能到达所有城市,两个城市之间可能有不止一个航班。一个国家内的每两个城市之间一定有不止一条飞行路线,而两个国家的城市之间只有一条飞行路线。小Z想知道,从每个城市出发到额外费用最大的城市,以便估算出出行的费用,请你帮助他。当然,你不能通过乘坐多次一个航班增加额外费用,也就是必须沿费用最少的路线飞行。

输入格式

第一行,两个整数N,M,表示地图上有N个城市,M条航线。

接下来M行,每行三个整数a,b,c,表示城市a,b之间有一条费用为c的航线。

输出格式

共N行,第i行为从城市i出发到达每个城市额外费用的最大值。

样例输入

6 6
1 4 2
1 2 6
2 5 3
2 3 7
6 3 4
3 1 8

样例输出

4
4
4
6
7
7

样例说明

有四个国家,包含的城市分别为 {1,2,3},{4},{5},{6}。从城市1出发到达城市6,乘坐(1,3)(3,6)两个航班费用最大,(1,3)在国内为免费航班,(3,6)的费用为4,所以从1出发的最大费用为4。

数据规模

  • 对于30%的数据 1<=N<=1000,1<=M<=1000
  • 对于100%的数据 1<=N<=20000,1<=M<=200000