记录编号 166662 评测结果 AAAAAAAAAAAAAAAAAAAA
题目名称 [HZOI 2015] 厕所里的OIer 最终得分 100
用户昵称 Gravatarforever 是否通过 通过
代码语言 C++ 运行时间 0.079 s
提交时间 2015-06-16 09:46:02 内存使用 9.96 MiB
显示代码纯文本
#define MAXN 50UL

#include <cstdio>

using namespace std;

int not_[21],x,y,nw,n,m;

unsigned long long f[1<<20];

int main(){
	freopen("scr_chess.in","r",stdin);
	freopen("scr_chess.out","w",stdout);
	scanf("%d%d",&n,&m);
	nw=1<<n;f[0]=1;
	for(int i=1;i<=m;i++){
		scanf("%d%d",&x,&y);
		not_[x]|=1<<(y-1);
	}
	for(int i=1;i<nw;i++){
		int num=0;
		for(int j=i;j>0;j-=j&(-j)){
			num++;
		}
		for(int j=i&(~not_[num]);j>0;j-=j&(-j)){
			f[i]+=f[i&~(j&(-j))];
		}
	}
	printf("%lld",f[nw-1]);
	return 0;
}