#P3876. [TJOI2010] 数字序列
[TJOI2010] 数字序列
题目描述
考虑一个由数字0,1,2,3组成的长度为n的序列,如果它是一个合法序列,那么它应当满足以下两个条件:
-
序列中任意相邻的两元素没有出现模式{'00', '11', '22', '33', '02', '20', '23', '32', '13', '31'}中的任一种;
-
序列满足m个约束条件,每个约束条件的形式均为:{p1, p2, ... pL},它表示序列中的p1, p2, ..., pL这些位置的值不同。例如约束条件{1, 5, 11}表示序列中的第一个,第五个和第十一个元素两两各不相同。
现在已知序列长度n,约束条件个数m以及这m个约束条件,问是否存在这样的合法序列。
输入格式
输入文件的第一行是一个正整数T,表示文件中包含T组测试数据。从文件的第二行开始,将依次给出所有的测试数据。每个测试数据的第一行是两个整数n和m,它们的涵义如上面题目描述中所示。接下来有m行,每行描述一个约束条件,其中在描述第i个约束条件的行中,第一个数字是表示这个约束条件包含多少个元素的正整数Li,后面由Li个正整数给出第i个约束的具体情况。
输出格式
共输出T行,对每组测试数据输出一行,如果存在满足条件的合法序列,输出"Yes";否则,输出"No"。
2
7 2
3 1 2 4
4 2 4 5 7
3 1
2 1 1
Yes
No
提示
T ≤ 10,1 ≤ n ≤ 100000,0 ≤ m ≤ 5000,1 ≤ Li ≤ 100,1 ≤ pi ≤ n
每个测试点时限1秒
第一组样例中,序列0103012是满足要求的一个合法序列。