记录编号 |
166662 |
评测结果 |
AAAAAAAAAAAAAAAAAAAA |
题目名称 |
[HZOI 2015] 厕所里的OIer |
最终得分 |
100 |
用户昵称 |
forever |
是否通过 |
通过 |
代码语言 |
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;
}