#P5339. 【大湾区第一届小学组复赛】4.神奇配方(craft)

【大湾区第一届小学组复赛】4.神奇配方(craft)

题目描述

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

现在,我们有 nn 个配方和 mm 种原材料。每个配方都有一个唯一的编号(从 11nn),而原材料的编号从 n+1n+1n+mn+m。配方的制作可能需要其他配方作为中间产物,也可能直接需要原材料,但保证不存在循环依赖(即依赖关系构成有向无环图)。

对于第 ii 个配方,它会依赖 kik_i 个成分。每个成分由编号 xjx_j 和需求数量 yjy_j 描述。编号 xjx_j 可以是其他配方(xjnx_j \le n),也可以是原材料(n+1xjn+mn+1 \le x_j \le n+m)。

现在,你需要根据给定的配方依赖关系和数量需求,计算出制作 qq 个指定配方(可能重复)所需的每种原材料的数量。

输入格式

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

接下来的 nn 行,每行描述一个配方。第 ii 行的第一个正整数 kik_i 表示该配方依赖的成分数量,随后是 kik_i 对正整数 xjx_jyjy_j,表示需要编号为 xjx_j 的成分 yjy_j 个。保证同一配方中 xjx_j 互不相同。

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

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

输出格式

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

样例

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

样例解释

  • 配方 11 依赖于 11 个配方 2222 个原材料 33
  • 配方 22 依赖于 22 个原材料 4411 个原材料 55

现在需要制作两个配方 11 和一个配方 22

  • 原材料 33 的需求量:2×2=42 \times 2 = 4
  • 原材料 44 的需求量:2×2+2=62 \times 2 + 2 = 6(两个配方 11 各需要 22 个配方 22,每个配方 22 需要 22 个原材料 44;单独的一个配方 22 需要 22 个原材料 44)。
  • 原材料 55 的需求量:2×1+1=32 \times 1 + 1 = 3

数据范围与提示

  • 对于 20%20\% 的数据:n100n \le 100m100m \le 100
  • 对于另外 20%20\% 的数据:m1m \le 1
  • 对于另外 20%20\% 的数据:配方仅依赖于原材料。
  • 对于 100%100\% 的数据:n105n \le 10^5m105m \le 10^5kimin(n×(n+m),5×105)\sum k_i \le \min(n \times (n+m), 5 \times 10^5)yj5y_j \le 5q105q \le 10^5

所有答案在 6464 位整数范围内。