1197 动物园 | OJ题库 | CODE STUDY
CODE STUDY
Programming Practice Platform

欢迎回来

1197

动物园

Easy 时间限制 1000 ms 内存限制 262144 KB
状压DP

题目详情

返回题库

题目描述

新建的圆形动物园是亚太地区的骄傲。圆形动物园坐落于太平洋的一个小岛上,包含一大圈围栏,每个围栏里有一种动物。如下图所示:

1596a.png

你是动物园的公关主管。你要做的是,让每个参观动物园的游客都尽可能高兴。今天有一群小朋友来到动物园参观,你希望能让他们在动物园度过一段美好的时光。但这并不是一件容易的事——有些小朋友喜欢某些动物,而有些小朋友则害怕某些动物。例如, Alex 喜欢可爱的猴子和考拉,而害怕拥有锋利牙齿的狮子。而 Polly 会因狮子有美丽的鬃毛而喜欢它,但害怕有臭味的考拉。

你可以选择将一些动物从围栏中移走以使得小朋友不会害怕。但你移走的动物也不能太多,否则留给小朋友们观赏的动物就所剩无几了。

每个小朋友站在大围栏圈的外面,可以看到连续的5个围栏。你得到了所有小朋友喜欢和害怕的动物信息。当下面两处情况之一发生时,小朋友就会高兴:

1、至少有一个他害怕的动物被移走;

2、至少有一个他喜欢的动物没被移走。

例如,考虑下图中的小朋友和动物:

1596b.png

假如你将围栏 4  和 12  的动物移走。Alex 和 Ka-Shu 将很高兴,因为至少有一个他们害怕的动物被移走了。这也会使 Chaitanya 高兴,因为他喜欢的围栏 6  和 8  中的动物都保留了。但是,Polly 和 Hwan 将不高兴,因为他们看不到任何他们喜欢的动物,而他们害怕的动物都还在。这种安排方式使得三个小朋友高兴。

现在换一种方法,如果你将围栏 4  和 6  中的动物移走,Alex 和 Polly 将很高兴,因为他们害怕的动物被移走了。Chaitanya 也会高兴,虽然他喜欢的动物 6  被移走了,他仍可以看到围栏 8  里面他喜欢的动物。同样的 Hwan 也会因可以看到自己喜欢的动物 12  而高兴。唯一不高兴的只有 Ka-Shu。

如果你只移走围栏 13  中的动物,Ka-Shu 将高兴,因为有一个他害怕的动物被移走了,Alex, Polly, Chaitanya 和 Hwan 也会高兴,因为他们都可以看到至少一个他们喜欢的动物。所以有 5  个小朋友会高兴。这种方法使得了最多的小朋友高兴。

输入描述

输入的第一行包含两个整数N,C,用空格分隔。N是围栏数,C是小朋友的个数。围栏按照顺时针的方向编号为1,2,3,…,N

接下来的C行,每行描述一个小朋友的信息,以下面的形式给出:E F L $X_1 X_2⋯ X_F Y_1 Y_2⋯Y_L$。

其中EE表示这个小朋友可以看到的第一个围栏的编号,换句话说,该小朋友可以看到的围栏为E,E+1,E+2,E+3,E+4。注意,如果编号超过N将继续从1开始算。如:当N=14,E=13时,这个小朋友可以看到的围栏为13,14,1,2和3。

F表示该小朋友害怕的动物数。L表示该小朋友喜欢的动物数。

围栏$X_1,X_2...X_F$中包含该小朋友害怕的动物。围栏$Y_1,Y_2...Y_L$中包含该小朋友喜欢的动物。

$X_1,X_2...X_F,Y_1,Y_2...Y_L$是两两不同的整数,而且所表示的围栏都是该小朋友可以看到的。

数据范围与提示:

对于每一个测试点,如果你的答案正确,则该测试点得满分,否则得0分。

对于全部数据,$10 \leq N \leq 10^4,1 \leq C \leq5×10^4,1 \leq E \leq N$

输出描述

仅输出一个数,表示最多可以让多少个小朋友高兴。

小朋友已经按照他们可以看到的第一个围栏的编号从小到大的顺序排好了(这样最小的E对应的小朋友排在第一个,最大的E对应的小朋友排在最后一个)。

注意可能有多于一个小朋友对应的E是相同的。

提示

样例说明 1

样例1给出了前面描述的示例情形。它使得所有小朋友(C=5)高兴。

样例说明 2

样例2给出了这样的情形,要使得所有小朋友(C=7)都高兴是不可能的。

测试样例

样例支持多行内容展示
样例1
输入
14 5
2 1 2 4 2 6
3 1 1 6 4
6 1 2 9 6 8
8 1 1 9 12
12 3 0 12 13 2
输出
5
样例2
输入
12 7
1 1 1 1 5
5 1 1 5 7
5 0 3 5 7 9
7 1 1 7 9
9 1 1 9 11
9 3 0 9 11 1
11 1 1 11 1
输出
6
editor.py

提交前会先自动运行样例。只有样例全部通过,才会进入后端正式判题。