P7076 [CSP-S2020] 动物园
  • 板块灌水区
  • 楼主scy_SWDAR
  • 当前回复7
  • 已保存回复7
  • 发布时间2024/10/25 19:23
  • 上次更新2024/10/25 20:09:07
查看原帖
P7076 [CSP-S2020] 动物园
1106235
scy_SWDAR楼主2024/10/25 19:23
#include <bits/stdc++.h>
using namespace std;
int n, m, c, k, ans;
vector<int> guide;//指南
set<int> siliao;
set<int> animal;
bool change(int n, int m) {
    return (n >> m) & 1;
}
int main() {
    cin >> n >> m >> c >> k;
    if(m==0)
    {
        cout<<18446744073709551615;
        return 0;
    }
    for (int i = 0; i < n; i++) {
        int cn;
        cin >> cn;
        animal.insert(cn);
    }
    for (int i = 0; i < m * 2; i++) {
        int ct;
        cin >> ct;
        guide.push_back(ct);
    }
    //printf("%d",1);
    for (auto i: animal) {
        for (int j = 0; j < guide.size() - 1; j += 2) {
            if (change(i, guide[j])) {
                siliao.insert(guide[j + 1]);
            }
        }
    }
    for (int i = 1; i <= pow(2, k); i++) {
        bool flag = 1;
        if (animal.find(i) != animal.end()) continue;
        for (int j = 0; j < guide.size() - 1; j += 2)
            if (change(i, j) && siliao.find(guide[j + 1]) == siliao.end()) {
                flag = 0;
                break;
            }
        if (flag) ans++;
    }
    cout << ans;
    return 0;
}
为啥语法错误

2024/10/25 19:23
加载中...