| 记录编号 | 408578 | 评测结果 | AAAAAAAAAAAAAAAAAAAA | 
    
        | 题目名称 | 2024.[APIO 2007]动物园 | 最终得分 | 100 | 
    
        | 用户昵称 |  Troywar | 是否通过 | 通过 | 
    
        | 代码语言 | C++ | 运行时间 | 0.173 s | 
    
        | 提交时间 | 2017-05-25 08:01:06 | 内存使用 | 2.35 MiB | 
    
    
    
    		显示代码纯文本
		
		#include<cstdio>
#include<cstring>
using namespace std;
const int N=10100;
inline int max(int a,int b){return a>b?a:b;}
int n,c;
int f[N][1<<6];
int gts[N][1<<6];
inline int read(){
	int s=0,k=1;
	char ch=getchar();
	while(ch<'0'||ch>'9')k=ch=='-'?-1:1,ch=getchar();
	while(ch>='0'&&ch<='9')	s=(s<<3)+(s<<1)+ch-48,ch=getchar();
	return s*k;
}
int Main(){
	freopen("apio_zoo.in","r",stdin);
	freopen("apio_zoo.out","w",stdout);
	n=read(),c=read();
	int m;
	int E;
	int F,L;
	int fear,like;
	for(int i=1;i<=c;i++){
		fear=like=0;
		E=read(),F=read(),L=read();
		for(int j=1;j<=F;j++){
			m=read();
			fear|=1<<((m+n-E)%n);
		}
		for(int j=1;j<=L;j++)
			like|=1<<((read()+n-E)%n);
		for(int j=0;j<1<<5;j++)
		{
			bool have=0;
			if((~j)&fear){
				gts[E][j]++;
				have=true;
			}
			if(have)	continue;
			if(j&like)
				gts[E][j]++;
		}
	}
	
	int ans=0;
	for(int t=0;t<1<<4;t++){		
		memset(f,128,sizeof(f));
		f[0][t<<1]=0;	
		for(int k=1;k<=n-4;k++){
			for(int j=0;j<1<<5;j++){
				int l=j<<1;
				if(l&(1<<5))	l-=1<<5;	
				f[k][j]=max(f[k-1][l],f[k-1][l|1])+gts[k][j];
			}
		}
		int r=0;
		for(int i=0,k=n-3;k<=n;i++,k++){
			r+=t&(1<<i);
			for(int j=0;j<1<<5;j++)
				if((j>>n-k+1)==r){
					int l=j<<1;
					if(l&(1<<5))	l-=1<<5;
					f[k][j]=max(f[k-1][l],f[k-1][l|1])+gts[k][j];
					ans=max(ans,f[k][j]);
				}
		}
	}
	printf("%d",ans);
///	while(1);
	return 0;
}
int dawibwa=Main();
int main(){
	;return 0;
}