记录编号 |
408655 |
评测结果 |
AAAAAAAAAAAAAAAAAAAA |
题目名称 |
[HZOI 2015] 厕所里的OIer |
最终得分 |
100 |
用户昵称 |
~玖湫~ |
是否通过 |
通过 |
代码语言 |
C++ |
运行时间 |
0.005 s |
提交时间 |
2017-05-25 10:50:31 |
内存使用 |
8.33 MiB |
显示代码纯文本
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
#define sc(a) scanf("%d",&a)
#define LL long long
const LL M=(1<<20)+2000;
LL f[M];
int n,m;
int a[28];
int main()
{
freopen("scr_chess.in","r",stdin);
freopen("scr_chess.out","w",stdout);
sc(n);sc(m);
int x,y;
for(int i=1;i<=m;i++)
{
sc(x);sc(y);
a[x]|=(1<<(y-1));
}
f[0]=1;
for(int i=1;i<=(1<<n)-1;i++)
{
int temp,num=0;
for(temp=i;temp>0;temp-=(temp&-temp))
num++;
temp=i&(~a[num]);
for(int j=temp;j>0;j-=(j&-j))
f[i]+=f[i^(j&-j)];
}
printf("%lld",f[(1<<n)-1]);
//while(1);
return 0;
}