P1028灵舵渡千屿helm

时间限制 1500 ms内存限制 512 MiB通过率 —
显示算法标签最短路 · 分层图

【题目背景】

在晨汐港备齐远航所需的物资后,Gioush 大队再度驶入特西荼亚海。暮色中的金白鱼群将众人引向岛屿密布的海域,Ehundategh 于是让 tfbz 接管船上的灵舵,带领船队穿过千屿之间的水道。

【题目描述】

特西荼亚海中共有 nn 座岛屿,岛屿之间共有 mm 条单向航道,每条航道都有一定的航行费用。为了让掌舵者能够在交错的水道间迅速作出选择,Ehundategh 预先为每座岛屿的所有出航航道规定了固定次序:若从岛屿 xx 出发的航道共有 dxd_x 条,则它们依次编号为 1dx1\sim d_x

船上的灵舵档位用整数 pp 表示,其上限为 kk。启航时,tfbz 将灵舵档位设为 11。在航行途中的任意时刻,他都可以按照以下方式调整灵舵档位

  • p<kp<k,则可以花费 vpv_p 的费用,使 pp+1p\leftarrow p+1
  • p>1p>1,则可以花费 wpw_p 的费用,使 pp1p\leftarrow p-1

当船位于岛屿 xx,且当前灵舵档位pp 时,若从岛屿 xx 出发的第 pp 条航道通向岛屿 yy,其航行费用为 zz,则 tfbz 可以花费 zz 的费用,操纵船沿这条航道抵达岛屿 yy。航行结束后,灵舵档位不会改变。特别地,若从岛屿 xx 出发的航道不足 pp 条,则船此时无法从岛屿 xx 出航,但 tfbz 仍然可以继续调整灵舵档位

Gioush 大队最初位于岛屿 11。为了在真正深入群岛前准备好每一条可能的航线,tfbz 希望知道:从岛屿 11 出发,抵达每一座岛屿所需的最小费用分别是多少。

【输入格式】

从文件 helm.in\textbf{\textit{helm.in}} 中读入数据。

第一行三个正整数 n,m,kn,m,k,分别表示岛屿数量、单向航道数量和灵舵档位的上限。

第二行包含 k1k-1 个非负整数 v1,v2,,vk1v_1,v_2,\ldots,v_{k-1},表示调高灵舵档位所需的费用。当 k=1k=1 时,该行为空。

第三行包含 k1k-1 个非负整数 w2,w3,,wkw_2,w_3,\ldots,w_k,表示调低灵舵档位所需的费用。当 k=1k=1 时,该行为空。

接下来 nn 行描述各座岛屿的出航航道。第 ii 行的第一个整数 did_i 表示从岛屿 ii 出发的航道数量;接下来包含 2di2d_i 个整数 yi,1,zi,1,yi,2,zi,2,,yi,di,zi,diy_{i,1},z_{i,1},y_{i,2},z_{i,2},\ldots,y_{i,d_i},z_{i,d_i},其中 yi,jy_{i,j}zi,jz_{i,j} 分别表示第 jj 条航道通向的岛屿及其航行费用。

【输出格式】

输出到文件 helm.out\textbf{\textit{helm.out}} 中。

输出一行 nn 个整数,其中第 ii 个整数表示从岛屿 11 抵达岛屿 ii 所需的最小费用。若无法抵达岛屿 ii,则输出 1-1

【样例 1 输入】

5 6 32 41 13 2 5 3 1 4 21 3 22 1 2 4 100

【样例 1 输出】

0 5 3 4 -1

【说明/提示】

【样例 1 解释】

岛屿 11 是 Gioush 大队的起点,因此抵达它所需的费用为 00

保持灵舵档位11,可以花费 55 抵达岛屿 22;先花费 22灵舵档位调为 22,再花费 11 航行,可以抵达岛屿 33;沿同样的航线抵达岛屿 33 后,继续选择它的第 22 条出航航道,便可以再花费 11 抵达岛屿 44。可以证明,这三种方案的费用均为最小值。岛屿 55 无法抵达,因此输出 1-1

【样例 2】

见选手目录下的 helm/helm2.in\textbf{\textit{helm/helm2.in}}helm/helm2.ans\textbf{\textit{helm/helm2.ans}}

该组样例符合测试点 161\sim 6 的数据范围。

【样例 3】

见选手目录下的 helm/helm3.in\textbf{\textit{helm/helm3.in}}helm/helm3.ans\textbf{\textit{helm/helm3.ans}}

该组样例符合测试点 797\sim 9 的数据范围。

【样例 4】

见选手目录下的 helm/helm4.in\textbf{\textit{helm/helm4.in}}helm/helm4.ans\textbf{\textit{helm/helm4.ans}}

该组样例符合测试点 101510\sim 15 的数据范围。

【样例 5】

见选手目录下的 helm/helm5.in\textbf{\textit{helm/helm5.in}}helm/helm5.ans\textbf{\textit{helm/helm5.ans}}

该组样例符合测试点 162016\sim 20 的数据范围。

【数据范围】

对于 100%100\% 的数据,保证:1n,m3×1051\leq n,m\leq 3\times 10^51k2.5×1051\leq k\leq 2.5\times 10^50vi,wi1090\leq v_i,w_i\leq 10^90dik0\leq d_i\leq ki=1ndi=m\sum_{i=1}^{n}d_i=m1yi,jn1\leq y_{i,j}\leq n1zi,j1091\leq z_{i,j}\leq 10^9

测试点编号n,mn,mkk特殊性质
131\sim 36\leq 66\leq 6
464\sim 6103\leq 10^3103\leq 10^3
797\sim 95×104\leq 5\times 10^4100\leq 100
101210\sim 12105\leq 10^5105\leq 10^5A
131513\sim 15105\leq 10^5105\leq 10^5B
162016\sim 203×105\leq 3\times 10^52.5×105\leq 2.5\times 10^5

特殊性质 A:所有调高或调低灵舵档位的费用均为 00

特殊性质 B:至多存在 1010 座岛屿满足 di10d_i\geq 10

【题解】

已公开 1 篇题解,官方题解会优先显示。

查看题解