• 灾后重建


    【题目描述】

    地震过后,所有的村庄都有一定的损毁,但公路依旧正常。在村庄重建好之前,所有与未重建完成村庄相连的公路均无法通车。

    给定村庄数N以及M条公路的长度,村庄从0~N-1编号,公路是双向的,并给定第i个村庄重建完成的时间Ti,可以认为村庄是同时开始重建的并在第Ti天重建完成,且在当天即可通车。若Ti为0,则此村庄一开始就可以通车。

    现有Q个询问,对于每个询问,需要输出在第t天,从村庄x到村庄y的最短路径长度为多少,如果无法找到从x村庄到y村庄的路径,或者村庄x或村庄y在第t天仍未重建完成,则输出-1。

    【输入描述】

    第一行输入两个正整数N、M,表示村庄的数目与公路的数目;

    第二行输入N个非负整数T0、T1、······、TN–1,表示每个村庄重建完成的时间(T0 ≤ T1 ≤ ······ ≤ TN–1);

    接下来M行,每行输入三个非负整数i、j、w,w为不超过10000的正整数,表示存在一条长度为w、连接村庄i和村庄j的道路(i ≠ j),数据保证对于任意一对村庄只存在一条道路;

    第M+3行输入一个正整数Q,表示询问的数目;

    接下来Q行,每行输入三个非负整数x、y、t,表示在第t天,询问从村庄x到村庄y的最短路径长度为多少,数据保证t不降。

    【输出描述】

    输出Q行,对于每一个询问输出一个数,表示答案,否则输出-1。

    【样例输入】

    4 5

    1 2 3 4

    0 2 1

    2 3 1

    3 1 2

    2 1 4

    0 3 5

    4

    2 0 2

    0 1 2

    0 1 3

    0 1 4

    【样例输出】

    -1

    -1

    5

    4

    【数据范围及提示】

    对于30%的数据,N ≤ 50;

    对于30%的数据,Ti = 0;

    对于50%的数据,Q ≤ 100;

    对于100%的数据,N ≤ 200,M ≤ N*(N-1)/2,Q ≤ 50000。

  • 相关阅读:
    SZU:B47 Big Integer II
    Plan : 破晓
    C程序设计语言(第二版)习题:第二章
    Linux : fedora 安装 vnc server
    Linux系统编程:客户端-服务器用FIFO进行通信
    Linux系统编程:dup2()重定向
    Vijos: P1046观光旅游
    FLOYD 求最小环
    uva 401.Palindromes
    codeforces Educational Codeforces Round 5 A. Comparing Two Long Integers
  • 原文地址:https://www.cnblogs.com/Ackermann/p/5952770.html
Copyright © 2020-2023  润新知