记录编号 600352 评测结果 AAAAAAAAAAAAAAAAAAAA
题目名称 2001.[HZOI 2015] 厕所里的OIer 最终得分 100
用户昵称 GravatarXZDZD 是否通过 通过
代码语言 C++ 运行时间 0.171 s
提交时间 2025-04-29 17:37:48 内存使用 3.66 MiB
显示代码纯文本
#include<bits/stdc++.h>
#define int long long
const int N = 25;
using namespace std;
int n, m;
int f[1 << 21];
bool vis[N][N];
signed main() {
    freopen("scr_chess.in","r",stdin);
    freopen("scr_chess.out","w",stdout);
    cin >> n >> m;
    for (int i = 1; i <= m; ++i) {
        int x,y;cin >> x >> y;
        vis[x - 1][y - 1] = true;
    }
    f[0] = 1;
    for (int k = 0; k < (1 << n); ++k) {
        int v = __builtin_popcount(k);
        for (int i = 0; i < n; ++i) {
            if (!(k & (1 << i))) {
               if (!vis[v][i]) {
                    f[k | (1 << i)] += f[k];
                }                 
            } 
        }
    }
    cout << f[(1 << n) - 1];
    return 0;
}