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