#题面
#题目描述
在 Byte 山的山脚下有一个洞穴入口。这个洞穴由复杂的洞室经过隧道连接构成。洞穴的入口是一条笔直通向「前面洞口」的道路。隧道互相都不交叉(他们只在洞室相遇)。两个洞室要么就通过隧道连接起来,要么就经过若干隧道间接的相连。
现在决定组织办一个「King’s of Byteotia Cup」比赛。参赛者的目标就是任意选择一条路径进入洞穴并尽快出来即可。一条路径必须经过除了「前面洞口」之外还至少要经过其他一个洞室。一条路径中一个洞不能重复经过(除了“前面洞室”以外),类似的一条隧道也不能重复经过。
一个著名的洞穴探险家 Byteala 正准备参加这个比赛。Byteala 已经训练了数月而且他已获得了洞穴系统的一套详细资料。对于每条隧道他都详细计算了从两个方向经过所需要的时间。经过一个洞室的时间很短可以忽略不记。现在 Byteala 向计算一条符合条件的最优路径。
#输入格式
第一行有两个数 和 分别表示洞室的数目以及连接他们的隧道的数目。洞室从 到 编号。「前面洞室」的编号为 。
接下来 行描述了所有的隧道。每行四个整数 表示从洞室 到洞室 需要 分钟的时间,而从洞室 到洞室 需要 分钟的时间。你可以假设符合要求的路径肯定存在。
#输出格式
输出一行,表示最少需要多少时间完成比赛。
#样例输入输出
样例输入 #1
3 3
1 2 4 3
2 3 4 2
1 3 1 1
样例输出 #1
6
#数据范围与约定
对于 的数据,,,,,。
#思路
求经过 号点的最短有向环路的长度。
一条有向环一定是这样的: 。那么暴力就是枚举 然后跑最短路。
但是这里的最短路是可以「并行」地求的。也就是说,如果给定两个不相交的点集 ,那么我们可以用一次最短路的时间求出所有点对 满足 的最短路的最小值。可以采用二进制拆分的方法实现。
#代码
1 |
|