#HK4991. 「POI 2023/2024 R2」Rycerz

「POI 2023/2024 R2」Rycerz

题目描述

题目译自 XXXI Olimpiada Informatyczna – II etap Rycerz

在 Bajtocja 王国,有 nn 座城市通过 mm 条双向道路相连,每条道路通行需耗时一天。城市编号从 11nn。一位骑士从城市 11 出发,需在最多 dd 天内抵达城市 nn,挑战一只强大的怪兽。

骑士将使用 kk 把不同类型的剑,类型编号从 11kk,每把剑具有非负整数值。初始时,骑士持有每种类型的剑,价值均为 00。每条道路旁驻扎 kk 名剑匠,第 ii 条道路的第 jj 名剑匠可将类型 jj 的剑价值调整为 ai,ja_{i,j}。骑士通过道路时,可选择任意剑匠调整任意子集的剑,每种剑可多次调整。

骑士希望最大化类型 11 的剑价值;在保证类型 11 价值最大的前提下,最大化类型 22 的剑价值,依此类推,直至类型 kk。调整顺序无关紧要,仅关注最终价值。已知道路网络保证从城市 11nndd 天内可达,骑士可多次经过城市或道路。你的任务是确定骑士在最佳路径规划下的剑价值。

输入格式

第一行包含四个整数 n,m,d,kn, m, d, k $(2 \leq n \leq 10000, 1 \leq m, d \leq 10000, 1 \leq k \leq 10)$,分别表示城市数、道路数、最多天数和剑类型数。

接下来的 mm 行,每行包含 k+2k+2 个整数 ui,vi,ai,1,,ai,ku_i, v_i, a_{i,1}, \ldots, a_{i,k},描述第 ii 条道路。其中 ui,viu_i, v_i (1ui,vin,uivi)(1 \leq u_i, v_i \leq n, u_i \neq v_i) 表示道路连接的城市编号,ai,ja_{i,j} (0ai,j109)(0 \leq a_{i,j} \leq 10^9) 表示第 jj 名剑匠可将类型 jj 的剑调整为该价值。同一城市对可能有多条道路。

输出格式

输出一行,包含 kk 个非负整数 w1,,wkw_1, \ldots, w_k,以空格分隔。w1w_1 表示骑士在最多 dd 天内抵达城市 nn 可获得的最大类型 11 剑价值;w2w_2 表示在 w1w_1 最大前提下,类型 22 剑的最大价值,依此类推。即,序列 (w1,,wk)(w_1, \ldots, w_k) 是骑士在 dd 天内抵达 nn,各类型 jj 剑达 wjw_j 价值的最大字典序序列。

7 7 6 2
1 2 7 9
2 7 1 0
1 3 5 6
3 4 10 1
4 7 0 0
5 6 2 17
5 7 3 15

10 15

最佳路径在图示中以粗线和箭头标示,按骑士通行方向绘制,粗体下划线标签表示道路上执行的剑调整。

从城市 3344 的道路提供类型 11 剑的最大价值 1010。无法在 66 天内同时经过 33445566 的道路。因此,骑士选择类型 22 剑价值 1515,通过 5577 的道路。路径为 1,3,4,7,5,71, 3, 4, 7, 5, 7,剩余 11 天未使用。

附加样例

  1. n=5,m=4,d=3,k=4n=5, m=4, d=3, k=4,每座城市与城市 11 相连,每条道路仅一个剑匠可将剑调整为非 00 价值。
  2. n=100,m=4950,d=5,k=8n=100, m=4950, d=5, k=8,每座城市与所有其他城市相连,剑价值随机。
  3. n=10000,m=9999,d=n1,k=1n=10000, m=9999, d=n-1, k=1,城市 iii+1i+1 (1in1)(1 \leq i \leq n-1) 相连。

数据范围与提示

详细子任务附加限制及分值如下表所示。

子任务编号 附加限制 分值
11 n,m,d10n, m, d \leq 10 1010
22 k=1k = 1 1515
33 n,m,d500,k5n, m, d \leq 500, k \leq 5 1515
44 n,m,d1000,ai,j10n, m, d \leq 1000, a_{i,j} \leq 10 2020
55 n,m,d1000n, m, d \leq 1000 1515
66 无附加限制 2525