C move

行动!行动!(move.pas/.c/.cpp)

时间限制:1s;空间限制:128MB

题目描述: 大 CX 国的大兵 Jack 接到一项任务:敌方占领了 n 座城市(编号 0~n-1),有些城市之 间有双向道路相连。Jack 需要空降在一个城市 S,并徒步沿那些道路移动到 T 城市。虽然 Jack 每从一个城市到另一个城市都会受伤流血,但大 CX 国毕竟有着“过硬”的军事实力, 它不仅已经算出 Jack 在每条道路上会损失的血量,还给 Jack 提供了 k 个“简易急救包”, 一个包可以让 Jack 在一条路上的流血量为 0。Jack 想知道自己最少会流多少血,不过他毕 竟是无脑的大兵,需要你的帮助。

输入描述: 第一行有三个整数 n,m,k,分别表示城市数,道路数和急救包个数。 第二行有两个整数,S,T。分别表示 Jack 空降到的城市编号和最终要到的城市。 接下来有 m 行,每行三个整数 a,b,c,表示城市 a 与城市 b 之间有一条双向道路。

输出描述: Jack 最少要流的血量。

样例输入: 

5 6 1
0 3
3 4 5
0 1 5
0 2 100
1 2 5
2 4 5
2 4 3

样例输出:

8

数据范围:

对于 30%的数据,2<=n<=50,1<=m<=300,k=0;

对于 50%的数据,2<=n<=600,1<=m<=6000,0<=k<=1;

对于 100%的数据,2<=n<=10000,1<=m<=50000,0<=k<=10.

原文地址:https://www.cnblogs.com/yxr001002/p/14226174.html