• 2473 泥泞城市

    时间限制 : 20000/10000 MS(Java/Others) | 内存限制 : 65536/32768 KB(Java/Others)

    提交数 : 83 | 通过数 : 12

    题目描述

    Z国有N个城市,城市编号从0到N-1,部分城市之间会有公路相连。而某些城市被称作泥泞城市,一旦经过这种城市,在接下来的两段公路上你的移动速度会减慢到初始值的一半。
    
    比如说有4个城市ABCD,公路的连接方式如下所示:
    A-B-C-D
    且A为泥泞城市。那么从A出发到D的过程中,A-B、B-C这两段路上的移动速度都会减半,而到C-D这段路上又会恢复到原来的速度。
    
    现在告诉你每条道路以及每个城市的情况,求从城市0到城市N-1最少所要花费的时间。
    数据保证从城市0到城市N-1必有路。

    输入要求

    第一行两个整数N、M,分别表示城市数目和道路数目。 (1 <= N,M <= 10^5)
    第二行有N个整数a[0]~a[N-1], a[i]=1表示编号为i的城市是泥泞城市,a[i]=0则表示不是。
    接下来M行,每行三个整数u,v,w。u,v分别表示这条道路所连接的两个城市的编号,w则表示以初始速度经过这条道路需要多少时间。 (0 <= u,v < N; 1 <= w <= 1000)

    输出要求

    输出一个整数,表示从城市0到城市N-1最少所要花费的时间。

    输入样例

    4 4
    0 1 0 1
    0 1 1
    2 0 1000
    1 2 1
    2 3 1000

    输出样例

    2000

    提示

    最短路径: 0->2->3

    来源

    NBU OJ

    [ 返回顶端 ] | [ 代码提交 ] | [ 统计数据 ] | [ 历史提交 ]