#P16959. [SCCPC 2026] 精灵对战
[SCCPC 2026] 精灵对战
题目描述
小 爱玩洛克王国,尤其喜欢和别的玩家进行精灵对战。
现在有 种精灵,编号为 到 。精灵之间存在克制关系。对于每种精灵,它最多被 种精灵克制。
当小 的精灵 与对手的精灵 对战时,结果如下:
- 若 克制 ,且 不克制 ,则 被击倒, 继续战斗;
- 若 克制 ,且 不克制 ,则 被击倒, 继续战斗;
- 若 与 之间不存在任何克制关系,则二者同归于尽;
- 若 与 互相克制,则小 可以通过高超的博弈技巧击败对手的精灵,即 被击倒, 继续战斗。
小 已经提前知道了对手的精灵出战顺序,这是一个长度为 的序列,序列中可以出现重复的精灵。
小 需要合理安排自己的精灵出战顺序来击败对手的所有精灵。对战过程中,当前精灵没有被击倒时,不能更换精灵;只有当前精灵被击倒或同归于尽后,小 才能派出新的精灵。小 可以多次派出同一种精灵。
派出一只精灵需要花费 的代价。请你求出小 击败对手所有精灵所需的最小总花费。
输入格式
第一行包含三个整数 (),分别表示精灵种类数、对手精灵出战序列长度,以及每种精灵最多被克制的精灵种类数。
接下来 行,第 行首先包含一个整数 (),表示克制第 种精灵的精灵种类数;随后包含 个整数 (),表示克制第 种精灵的精灵编号。
最后一行包含 个整数 (),表示对手的精灵出战序列。
输入保证每一行克制关系中的精灵编号互不相同,且不会出现自克制关系。
输出格式
输出一行一个整数,表示小 击败对手所有精灵所需的最小总花费。
3 4 2
1 2
2 3 1
1 1
2 2 2 1
1