过路费
过路费
【问题描述】
在某个遥远的国家里,有n个城市。编号为1,2,3,…,n。
NOIP 第二轮模拟 ~ 3 ~
这个国家的政府修建了m条双向道路,每条道路连接着两个城市。政府规定从城市S到城市T需要收取的过路费为所经过城市之间道路长度的最大值。如:A到B长度为2,B到C长度为3,那么开车从A经过B到C需要上交的过路费为3。
佳佳是个做生意的人,需要经常开车从任意一个城市到另外一个城市,因此她需要频繁地上交过路费,由于忙于做生意,所以她无时间来寻找交过路费最低的行驶路线。然而,当她交的过路费越多她的心情就变得越糟糕。你能帮帮她吗?帮她找出从开始城市到达目的城市,最少需要上交多少过路费。
【输入】
第一行是两个整数n 和m,分别表示城市的个数以及道路的条数。
接下来m行,每行包含三个整数 a,b,w(1≤a,b≤n,0≤w≤10^9),表示a与b之间有一条长度为w的道路。
接着有一行为一个整数q,表示佳佳发出的询问个数。
再接下来q行,每一行包含两个整数S,T(1≤S,T≤n,S≠T), 表示开始城市S和目的城市T。
【输出】
输出文件共q行,每行一个整数,分别表示每个询问需要上交的最少过路费用。输入数据保证所有的城市都是连通的。
参考我的博客货车运输,几乎一样
最小生成树+树上lca
货车运输
文章最后发布于: 2018-07-20 16:15:48