#P16766. [GKS 2020 #E] Golden Stone

[GKS 2020 #E] Golden Stone

题目描述

Leopold 的朋友 Kate 喜欢石头,于是他决定送她一块金石作为礼物。石头共有 SS 种类型,编号为 11SS,其中 11 号是金石。城市中不同地点可以免费获得某些类型的石头。城市由 NN 个路口(编号 11NN)和 MM 条连接不同路口对的双向街道组成。在每个路口,有零种或多种类型的石头无限量供应。

不幸的是,金石在任何路口都没有供应。幸运的是,Leopold 会一点魔法,他知道如何将一组石头组合并变成另一种石头。例如,他有一个配方可以用一块银石和两块大理石制成一块金石。他可以在某些路口收集这些石头(如果当地有供应),或者使用他的其他众多配方来生产这些石头中的任何一种。形式化地说,Leopold 有 RR 个配方,每个配方形式为 (a1,a2,,ak)b(a_1, a_2, \ldots, a_k) \to b,其中 k1k \ge 1。如果 Leopold 在某个路口收集了 kk 块类型分别为 a1,a2,,aka_1, a_2, \ldots, a_k 的石头,他可以选择应用这个配方,将这些石头变成一块类型为 bb 的石头。

Leopold 喜欢解谜远胜于体力活动,因此他不想不必要地带着石头在城市里跑来跑去。携带一块石头穿过一条街道需要花费 11 单位能量。Leopold 一次最多只能携带一块石头,但他可以在任何路口放下石头,并在以后任意时间捡起。

Leopold 至少需要花费多少能量才能生产出一块金石?

Leopold 非常害怕大数字。如果答案大于等于 101210^{12},则输出 1-1

输入格式

输入的第一行给出测试用例的数量 TT。接下来有 TT 个测试用例。每个测试用例的第一行包含四个整数 NNMMSSRR,分别表示路口的数量、街道的数量、石头的种类数以及配方的数量。接下来的 MM 行描述城市的地图。其中第 ii 行包含两个不同的整数 UiU_iViV_i,表示第 ii 条街道连接的两个路口。

随后的 NN 行描述每个路口可用的石头类型。第 ii 行以该路口可用的石头类型数量 CiC_i 开头,后面跟着 CiC_i 个互不相同的整数(范围在 [2,S][2, S]),列举这些石头类型。金石(编号 11)永远不会出现在任何路口的供应中。

每个测试用例的最后 RR 行描述 Leopold 的魔法配方。第 ii 行以该配方所需的原料石头数量 KiK_i 开头,后面跟着 KiK_i 个不一定互不相同的整数(范围在 [2,S][2, S]),列举所需原料的类型。该行以一个整数结尾(范围在 [1,S][1, S]),表示应用该配方后产出的石头类型。例如,3 6 5 6 3 表示一个配方需要两块类型 66 的石头和一块类型 55 的石头,产出类型 33 的石头。

保证在每个测试用例中都能生产出一块金石。

输出格式

对于每个测试用例,输出一行,格式为 Case #x: y,其中 xx 是测试用例编号(从 11 开始),yy 是该测试用例的答案,即 Leopold 至少需要花费的能量值。如果答案大于等于 101210^{12},则输出 1-1

3
4 3 4 1
1 2
1 3
1 4
0
1 2
1 3
1 4
3 2 3 4 1
4 3 4 1
1 2
1 3
1 4
0
2 2 3
1 3
1 4
3 2 3 4 1
2 1 4 2
1 2
2 2 3
1 4
3 2 3 4 1
2 2 3 4
Case #1: 3
Case #2: 2
Case #3: 0

提示

在第一个测试用例中,达到最小能量的方式是:Leopold 分别在路口 223344 收集石头 223344,将这些石头带到路口 11,然后使用他唯一的配方将这三块石头变成金石。这样,三块石头各自沿一条街道运输,因此总能量花费为 33

前两个测试用例的唯一区别是:现在路口 22 也供应石头 33。这时,最优方案是将一块类型 44 的石头从路口 44 运到路口 22(花费 22 单位能量),然后在路口 22 收集缺少的类型 2233 的石头,使用唯一的配方生产金石。

在第三个测试用例中,Leopold 无需离开路口 11 就能生产金石。首先,他收集类型 2233 的石头,使用第二个配方生产类型 44 的石头。第二步,他再次收集类型 2233 的石头,与类型 44 的石头组合,使用第一个配方生产金石。

限制条件

1T1001 \le T \le 100

1Ui,ViN1 \le U_i, V_i \le NUiViU_i \ne V_i

0Ci<S0 \le C_i < S

1Ki31 \le K_i \le 3

每对路口之间最多有一条街道。

从任意路口出发,可以沿一系列街道到达任何其他路口。

保证可以生产出一块金石。

测试集 1

2N502 \le N \le 50

1M801 \le M \le 80

2S502 \le S \le 50

1R501 \le R \le 50

测试集 2

2N3002 \le N \le 300

1M5001 \le M \le 500

2S3002 \le S \le 300

1R3001 \le R \le 300

翻译由 DeepSeek V4 Pro 完成