题目描述
B 市共有 m 个地铁站,编号为 1 到 m。每个地铁站都有一个站厅,地铁口与站厅之间有一条通道,往返耗时相同。从第 v(1≤v≤m)个地铁站的地铁口走到站厅需要 wv 的时间。
B 市共有 n 条地铁线路,编号为 1 到 n,其中第 i(1≤i≤n)条线路经过 ki 个地铁站,编号依次为 ai,1,ai,2,…,ai,ki。在第 ai,j(1≤j≤ki)个地铁站处,从站厅走到第 i 条线路的站台需要 ti,j 的时间,往返耗时相同。同一条线路不会重复经过同一个地铁站,即 ai,1,ai,2,…,ai,ki 两两不同。
由于空间有限,每个地铁站最多有 d 条线路经过。此外,B 市的地铁网络是连通的,即任意两个地铁站都可以通过若干条线路互相到达。
小 R 有 q 个出行计划。对于第 r(1≤r≤q)个出行计划,小 R 将从第 xr 个地铁站的地铁口出发,乘坐地铁到达第 yr 个地铁站的地铁口,途中可能进行若干次站内换乘。每次站内换乘都需要从一条线路的站台先走到站厅,再从站厅走到另一条线路的站台。每个出行计划的总步行时间为进出站和换乘的步行时间之和。小 R 希望每个出行计划的总步行时间都尽可能少。
你需要帮助小 R 求出,每个出行计划的最小总步行时间。
输入格式
从标准输入读入数据。
输入的第一行包含五个非负整数 c,n,m,d,q,分别表示测试点编号、地铁线路数、地铁站数、每个地铁站最多被几条线路经过,以及出行计划数。特别地,若 c=0,则该测试点为样例。
输入的第二行包含 m 个正整数 w1,w2,…,wm,依次表示从每个地铁站的地铁口走到站厅需要的时间。
输入的第 i+2(1≤i≤n)行包含 1+2ki 个正整数,其中第一个正整数为 ki,表示第 i 条线路经过的地铁站数;接下来 2ki 个正整数为 $a_{i,1},t_{i,1},a_{i,2},t_{i,2},\ldots,a_{i,k_i},t_{i,k_i}$,其中 ai,j 表示第 i 条线路经过的第 j 个地铁站,ti,j 表示从该地铁站的站厅走到第 i 条线路的站台需要的时间。
输入的第 r+n+2(1≤r≤q)行包含两个正整数 xr,yr,分别表示第 r 个出行计划的起点和终点所在的地铁站编号。
输出格式
输出到标准输出。
输出 q 行,其中第 r(1≤r≤q)行包含一个非负整数,表示第 r 个出行计划的最小总步行时间。
样例 1
0 2 5 20 2
4 1 9 2 5
3 1 5 2 7 4 6
3 2 3 3 4 5 7
1 3
1 2
32
17
样例 2
0 3 7 20 2
8 3 6 1 7 2 9
3 1 4 2 5 5 100
3 2 6 3 1 7 2
4 3 2 5 100 4 6 6 7
1 6
2 3
35
16
提示与数据范围
样例 1 解释
B 市有 5 个地铁站,从各地铁口走到站厅需要的时间分别为 4,1,9,2,5。
B 市有 2 条地铁线路,其中第 1 条线路依次经过第 1,2,4 个地铁站,第 2 条线路依次经过第 2,3,5 个地铁站,两条线路在第 2 个地铁站相交。
对于第 1 个出行计划,小 R 将从第 1 个地铁站前往第 3 个地铁站:他可以先从第 1 个地铁站的地铁口走到站厅,再走到第 1 条线路的站台,乘坐第 1 条线路到达第 2 个地铁站后走回站厅,再走到第 2 条线路的站台,乘坐第 2 条线路到达第 3 个地铁站后走回站厅,最后走到第 3 个地铁站的地铁口,总步行时间为
$$w_1+t_{1,1}+(t_{1,2}+t_{2,2})+t_{2,3}+w_3=4+5+(7+3)+4+9=32.$$
对于第 2 个出行计划,小 R 将从第 1 个地铁站前往第 2 个地铁站:他可以先从第 1 个地铁站的地铁口走到站厅,再走到第 1 条线路的站台,乘坐第 1 条线路到达第 2 个地铁站后走回站厅,最后走到第 2 个地铁站的地铁口,总步行时间为
w1+t1,1+t1,2+w2=4+5+7+1=17.
样例 2 解释
B 市有 7 个地铁站与 3 条地铁线路,其中第 1 条线路依次经过第 1,2,5 个地铁站,第 2 条线路依次经过第 2,3,7 个地铁站,第 3 条线路依次经过第 3,5,4,6 个地铁站。
对于第 1 个出行计划,小 R 将从第 1 个地铁站前往第 6 个地铁站:他可以先从第 1 个地铁站的地铁口走到站厅,再走到第 1 条线路的站台,乘坐第 1 条线路到达第 2 个地铁站后走回站厅,再走到第 2 条线路的站台,乘坐第 2 条线路到达第 3 个地铁站后走回站厅,再走到第 3 条线路的站台,乘坐第 3 条线路到达第 6 个地铁站后走回站厅,最后走到第 6 个地铁站的地铁口,总步行时间为
$$w_1+t_{1,1}+(t_{1,2}+t_{2,2})+(t_{2,3}+t_{3,3})+t_{3,6}+w_6=35.$$
对于第 2 个出行计划,小 R 将从第 2 个地铁站前往第 3 个地铁站:他可以先从第 2 个地铁站的地铁口走到站厅,再走到第 2 条线路的站台,乘坐第 2 条线路到达第 3 个地铁站后走回站厅,最后走到第 3 个地铁站的地铁口,总步行时间为
w2+t2,2+t2,3+w3=16.
数据范围
对于所有测试数据,均有:
- 0≤c≤25,1≤n≤500,1≤m≤∑i=1nki≤5×105,1≤d≤20,1≤q≤105;
- 对于所有 v(1≤v≤m),均有 1≤wv≤109;
- 对于所有 i(1≤i≤n),均有 1≤ki≤m;
- 对于所有 i,j(1≤i≤n,1≤j≤ki),均有 1≤ai,j≤m,1≤ti,j≤109;
- 对于所有 i(1≤i≤n),均有 ai,1,ai,2,…,ai,ki 两两不同;
- 对于所有 v(1≤v≤m),经过第 v 个地铁站的线路数均不超过 d;
- 任意两个地铁站都可以通过若干条线路互相到达;
- 对于所有 r(1≤r≤q),均有 1≤xr,yr≤m,且 xr=yr。
| 测试点编号 |
n≤ |
∑i=1nki≤ |
d≤ |
q≤ |
特殊性质 |
| 1∼3 |
3 |
10 |
20 |
10 |
无 |
| 4∼6 |
50 |
300 |
200 |
| 7,8 |
200 |
400 |
A |
| 9∼11 |
500 |
1000 |
105 |
| 12∼15 |
2×104 |
2000 |
B |
| 16∼19 |
5×105 |
105 |
| 20,21 |
2 |
无 |
| 22,23 |
500 |
2 |
| 24,25 |
20 |
特殊性质 A:每条线路至多经过 2 个地铁站,即对于所有 i(1≤i≤n),均有 ki≤2。
特殊性质 B:对于所有线路经过的所有地铁站,从站厅走到对应线路站台的步行时间都相同,即存在正整数 T,使得对于所有 i,j(1≤i≤n,1≤j≤ki),均有 ti,j=T。
来源说明
CSP-S 2026 第二轮第2题。题面据洛谷 P17832 民间数据自测整理,来源:CSP-S 2026 自测。本地采用标准输入输出与256MB内存限制,每题20个自建训练测试点、每点5分。测试数据非CCF官方数据,不复现原赛测试点评分;原选手目录外部大样例未随本包提供。