社区讨论

95 求助

P7076[CSP-S 2020] 动物园参与者 2已保存回复 1

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
1 条
当前快照
1 份
快照标识符
@lo8stcqy
此快照首次捕获于
2023/10/27 23:59
2 年前
此快照最后确认于
2023/10/27 23:59
2 年前
查看原帖
WA #15
CPP
#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;
}

回复

1 条回复,欢迎继续交流。

正在加载回复...