#GD23X2T4. 神奇配方(craft)

神奇配方(craft)

题目背景

2023第一届粤港澳信息学创新大赛复赛小学组T4

注意:本题是以文件读写的方式进行评测,请在代码中使用freopen()等文件读写的方式进行输入输出。

文件名请参考本标题下方的“文件IO:”后面的内容

时空复杂度:1s,512M。

题目描述

欢迎来到神奇的世界!这里有各种令人着迷的神秘的配方等待着你的探索。你将接受一项重要任务:根据给定的配方和需求,计算所需的原材料数量。

现在,我们有nn个配方和mm种原材料。每个配方都有一个唯一的编号(从11nn),而原材料也有自己的编号(从n+1n+1n+mn+ m)。配方的制作可能会需要其他配方,还会需要一些原材料来完成炼制,但不会存在相互依赖的情况。

为了更好地描述配方的制作过程,我们给出了每个配方的需求说明。对于第ii个配方,它会依赖kik_i个成分。其中,第jj个成分的编号为xjx_j,数量需求为yjy_j。注意这里的xjx_j可以是其他配方的编号(xjn)( x_j \le n),也可以是某个原材料(n+1xjn+m)(n +1 \le x_j \le n+m)。 现在,你需要编写一份神奇的程序,根据配方的依赖关系和数量需求,计算制作qq个指定配方所需的每种原材料的数量。

输入格式

第一行包含两个整数nnmm,表示配方的数量和原材料的数量。

接下来的nn行,每行描述一个配方的成分需求。第ii行的第一个正整数kik_i表示该配方依赖的成分数量,接下来的kik_i对正整数xix_iyiy_i描述了第jj个依赖的成分编号和数量需求,其中xjx_j互不相同。

接下来的一行,包含一个正整数qq,表示你要制作的配方的数量。

接下来的qq行,每行包含一个正整数,表示你要制作的配方的编号。

输出格式

输出共mm行,每行包含一个整数,第ii行表示制作上述qq个配方所需要的第ii种原材料(标号为n+in +i)所需要的数量。

输入输出样例 #1

2 3
2 2 1 3 2
2 4 2 5 1
3
1
1
2
4
6
3

说明/提示

配方1依赖于一个配方2,以及两个原材料3。 配方2依赖于两个原材料4,以及一个原材料5。 现在要制作两个配方1和一个配方2。所需要的原材料3的数量为2+2=4,原材料4的数量为2+2+2=6,原材料5的数量为1+1+1=3。

20%20\%的数据 n102,m102 n \le 10^2,m \le 10^2

对于另外20%20\%的数据 m1m \le 1

对于另外20%20\%的数据配方仅依赖原材料

100%100\%的数据 $ n \le 10^5,m \le 10^5 , \sum k \le min(n \times (n+m),5 \times 10^5),y_i \le 5 ,q \le 10^5$

6 1
5 2 2 3 3 4 4 5 5 6 6
4 3 3 4 4 5 5 6 6
3 4 4 5 5 6 6
2 5 5 6 6
1 6 6
1 7 7
3
1
3
4
16632
6 2
5 2 2 3 3 4 4 5 5 6 6
5 3 3 4 4 5 5 6 6 7 7
4 4 4 5 5 6 6 7 7
3 5 5 6 6 7 7
2 6 6 8 8
1 7 7
3
1
1
4
31325
4840