95 求助
查看原帖
95 求助
351239
zunfxsinw楼主2022/6/5 00:38

WA #15

#include <bits/stdc++.h>
using namespace std;
vector<int> p,q;
unsigned long long ans;
unsigned long long n,m,c,k,x,sum,y,cnt,buf,vis[70];
void trans(unsigned long long a)
{
    q.push_back(a % 2);
    if(a / 2 == 0) return;
    trans(a/2); 
}
int main()
{
    freopen("example.in","r",stdin);
    freopen("example.out","w",stdout);
    cin >> n >> m >> c >> k;
    for(int i = 0;i < 100;i++) p.push_back(0);
    for(int i = 0;i < n;i++) cin >> x,sum |= x;
    for(int i = 0;i < m;i++)
    {
        cin >> x >> y,p[x] = 1;
        if(!vis[x]) cnt++;
        vis[x] = 1;
    }
    trans(sum);
    int i = 0;
    while(i < p.size() && i < q.size())
    {
        if(p[i] == 1 && q[i] == 1) buf++;
        i++;
    }
    ans = pow(2,k-cnt+buf) - n;
    if(k == 64 && !n) cout << "18446744073709551616\n";
    else cout << ans << '\n';
    return 0;
}
2022/6/5 00:38
加载中...