#P1088. 装修

    ID: 90 传统题 1000ms 128MiB 尝试: 0 已通过: 0 难度: (无) 上传者: 标签>普及+/提高深度优先搜索暴力枚举CCSP2023

装修

装修

题目描述

在一个热门的元宇宙游戏中,小 bb 购置了一座豪华的虚拟房产,现在他需要为这个 房子添置若干家具。为了制作这些家具,他需要 N(1N100)N (1 \leq N \leq 100) 种特定的材料。

游戏中总共有 M(1M104)M (1 \leq M \leq 10^4) 种材料,它们的获取分为两类:

  1. 直接获取的材料:这些材料只需要付出相应的成本就可以获得。

  2. 通过合成获取的材料:这些材料无法直接获取,必须通过合成的方式获得。

除了以上两种方式,小 bb 还可以通过以下两种途径获取材料:

  1. 与其他玩家交换:小b了解到小区内有 P(0P5)P(0 \leq P \leq 5) 个邻居也在准备家具,并且他们有一些多出来的材料。对于邻居 jj,他多出来了材料 rjr_j,并且希望小b可以用他所需的材料 sjs_j 来换取 rjr_j 。小 bb 只能与每个邻居交换至多一次

  2. 购买官方售卖的材料礼包:官方售卖的材料礼包共有 Q(0Q5)Q(0≤Q≤5) 种,这些礼包包含多种材料,购买礼包将会获得礼包中的所有材料。每个礼包只能购买至多一次

小b想要知道,如何以最小的成本来获得所需的 NN 种材料。

输入格式

第一行包含四个正整数 N;M;P;QN;M;P;Q,其中 N(1N100)N (1 \leq N \leq 100) 表示小 b 所需的材料种数,M(1M104)M (1 \leq M \leq 10^4) 表示素材的总种类数,P(0P5)P (0 \leq P \leq 5) 表示邻居的个数,Q(0Q5)Q (0 \leq Q \leq 5) 表示礼包个数。素材编号为12M1,2,\cdots,M

接下来一行描述了小 bb 所需的材料列表,它包含 NN 个正整数素材编号。

接下来 MM 行描述了每种素材的获取方式。

• 如果这种素材是直接获取的,则输入为0; ci(1ci100)ci (1 \leq c_i \leq 100),其中 cic_i 是这种素材的成本。

• 如果这种素材是需要合成的,则第一个数为一个正整数 ai(ai>0)a_i (ai > 0) ,表示合成所需的素材个数。然后紧跟这 aia_i 个正整数表示合成所需素材的编号列表。保证每种素材至多只会作为一种素材的合成材料,并且素材之间的合成关系不会成环。

之后的 PP 行每行有2个整数sj;rj(1sj;rjM)s_j;r_j (1 \leq s_j;r_j \leq M) ,表示可以用素材 sjs_j 交换素材 rjr_j 。注意交换是单向的,不可以使用素材 rjr_j 来交换素材 sjs_j

最后的 QQ 行每行描述了一个礼包,第一个数为一个正整数 uk(uk100)u_k (u_k \leq 100) ,表示礼 包所包含的素材个数,然后是一个正整数 wk(1wk104)w_k(1 \leq w_k \leq 10^4) ,表示礼包的成本。之后跟随 uku_k 个正整数表示礼包包含的材料编号列表。

输出格式

输出一个整数,表示小 bb 获取所需材料的最小成本。

样例 #1

样例输入 #1

1 7 0 0
1
3 2 3 4
3 5 6 7
0 2
0 3
0 5
0 6
0 3

样例输出 #1

19

提示

【样例 11 解释】

最优方案为:

•获取素材 5;6;75;6;7 并合成为素材 22 ,花费 5+6+3=145+6+3=14

•获取素材 3;43;4 ,花费 2+3=52+3=5

•使用素材 2;3;42;3;4 来合成素材 11

总成本为 14+5=1914+5=19

【样例 22 解释】

最优方案为:

•购买素材礼包 22 ,获取素材 5;65;6 ,花费 66 ,然后通过素材 66 交换得到素材 11

•获取素材 33 ,交换得到素材 44 ,然后合成素材 22 ,花费 22

•获取素材 33 ,花费 22

总成本为 6+2+2=106+2+2=10

对于所有的数据,满足 $1≤N≤100,1≤s_j;r_j ≤M≤10^4,0≤P;Q≤5, 1≤c_i;u_k≤100,1≤w_k≤10^4$