A75068.观光旅游

普及+/提高

通过率:0%

时间限制:2.00s

内存限制:512MB

题目描述

NN 座岛屿和 MM 条双向桥梁,每条桥梁连接两个岛屿。岛屿和桥梁分别编号为 1,2,,N1,2,\cdots,N1,2,,M1,2,\cdots,M
桥梁 ii 连接岛屿 UiU_iViV_i ,在任一方向上穿过它所需的时间是 TiT_i
没有桥梁会连接同一个岛屿,但两个岛屿可以通过多座桥梁直接连接。
人们可以使用一些桥梁在任意两个岛屿之间旅行。

您会收到 QQ 的查询,请逐一回答。第 ii 个查询如下:

你会得到 KiK_i 不同的桥:桥 Bi,1,Bi,2,,Bi,KiB_{i,1},B_{i,2},\cdots,B_{i,K_i}
找到使用这些桥梁从 11 岛屿到 NN 岛屿至少一次所需的最短时间。
只考虑过桥所花费的时间。
你可以以任何顺序和任何方向穿过给定的桥梁。

输入格式

第一行输入两个正整数 N,MN,M (2N400;N1M2×105)(2 \leq N \leq 400;N-1 \leq M \leq 2 \times 10^5) ,表示岛屿个数。

接下来 MM 行,每行输入三个整数 U,V,TU,V,T (1Ui<ViN;1Ti109)(1 \leq U_i \lt V_i \leq N;1 \leq T_i \leq 10^9) ,表示这条桥梁连接的两个岛屿以及通过这条桥梁需要花费的时间。

M+1M+1 行输入一个正整数 QQ (1Q3000)(1 \leq Q \leq 3000) ,表示询问次数。

接下来 QQ 个询问,每个询问输入两行:

第一行输入一个正整数 KK (1Ki5)(1 \leq K_i \leq 5),表示这次询问需要通过的桥梁个数。

第二行输入 KK 个正整数 B1,B2,,BkB_1,B_2,\cdots,B_k (1B1<B2<<BKM)(1 \leq B_1 \lt B_2 \lt \cdots \lt B_K \leq M),表示这次询问需要通过的桥梁的编号。

输出格式

输出 QQ 行,每行一个整数。

ii 个整数表示第 ii 次询问的答案。

输入输出样例

  • 输入#1

    3 5
    1 2 10
    1 3 20
    1 3 30
    2 3 15
    2 3 25
    2
    1
    1
    2
    3 5
    

    输出#1

    25
    70
    
  • 输入#2

    6 6
    1 5 1
    2 5 1
    2 4 1
    3 4 1
    3 6 1
    1 6 1
    2
    5
    1 2 3 4 5
    1
    5
    

    输出#2

    5
    3
    
  • 输入#3

    5 5
    1 2 1000000000
    2 3 1000000000
    3 4 1000000000
    4 5 1000000000
    1 5 1000000000
    1
    1
    3
    

    输出#3

    4000000000
    

说明/提示

样例1解释

对于第一个查询,我们需要找到通过桥梁 11 从岛屿 11 到岛屿 33 的最短时间。最短时间是通过桥梁 11 从岛屿 11 到岛屿 22,然后通过桥梁 44 从岛屿 22 移动到岛屿 33 来实现的。所需时间为 10+15=2510+15=25。因此,在第一行输出 2525

对于第二个查询,我们需要找到通过桥梁 33 和桥梁 55 从岛屿
11 到岛屿 33 的最短时间。最短时间是通过桥梁 33 从岛 11 移动到岛 33 ,然后通过桥梁 55 移动到岛屿 22 ,最后通过桥梁 44 返回岛屿 33 来实现的。所需时间为 30+25+15=7030+25+15=70。因此,在第二行输出 7070

首页