luogu#P10315. [SHUPC 2024] 原神,启动!

[SHUPC 2024] 原神,启动!

题目描述

雷元素方碑具有如下性质:

  1. 具有 mm 种状态,0,1,,m10,1,\cdots,m-1 中的一种;
  2. 方碑受到一次攻击会进入下一个状态(m1m-1 的下一个状态是00);
  3. 某个方碑受到一次攻击时会带动其它一些方碑一起进入下一个状态。

nn 个方碑的状态相同时,解谜成功。但是小 A 觉得游戏里的方碑解谜太简单了,只需要使用刻晴的“斩尽牛杂”将元素方碑全部胡乱攻击一遍就能解谜成功,于是他开始思考更复杂的版本。

现在有 nn 个雷元素方碑,每个雷元素方碑有 mm 种状态。对于每个方碑 ii ,当它受到攻击时,都有 kik_i 个其它方碑和它一起进入下一个状态。

给定 nn 个雷元素方碑的初始状态 ss 和终止状态 tt,请你计算需要分别攻击每个方碑多少下,才能将雷元素方碑从状态 ss 变换到 tt

如果无解请输出niuza

输入格式

第一行读入两个正整数 n,m (1n100,m109)n,m\ (1\le n\le100,m\le10^9)保证 mm 为素数

接下来 nn 行,第 ii 行会读取如下数据:

  • 先读入一个数字 k (0k<n)k\ (0\le k<n),表示攻击该方碑会带动的方碑数。
  • 接下来读入 kk 个数字,第 jj 个数 aj (1ajn,ajia_j\ (1\le a_j \le n, a_j\neq iaj1<aj)a_{j-1}<a_j) 表示 ii 方碑带动的方碑编号。

接下来两行:

第一行读入 nn 个数,第 ii 个数 sis_i 表示第 ii 个雷元素方碑的初始状态 si (0si<m)s_i\ (0\le s_i <m)

第二行读入 nn 个数,第 ii 个数 tit_i 表示第 ii 个雷元素方碑的终止状态 ti (0ti<m)t_i\ (0\le t_i <m)​。

输出格式

如果有解,输出 nn 个小于 mm 的数,分别表示应该攻击每个方碑多少次,用空格隔开。对于多个解,输出任意一个即可。

如果无解,请输出 niuza

3 3
1 3
2 1 3
1 2
0 0 0
0 2 1
2 1 1
3 3
2 2 3
2 1 3
1 1
0 0 0
0 1 2
niuza