社区讨论
《离谱》
P7076[CSP-S 2020] 动物园参与者 1已保存回复 0
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @lq8tovra
- 此快照首次捕获于
- 2023/12/17 09:43 2 年前
- 此快照最后确认于
- 2023/12/17 11:28 2 年前
答案一长串
CPP#include<iostream>
#include<cstdio>
#define ull unsigned long long
using namespace std;
const int N = 1000005;
int q[N], p[N], num[N];
bool vis[N];
ull t;
int main(){
int n, m, c, k;
scanf("%d%d%d%d", &n, &m, &c, &k);
int cnt = 0;
for(int i = 1; i <= n; i++){
ull a;
scanf("%llu", &a);
t |= a;
}
for(int i = 1; i <= m; i++){
scanf("%d%d", q+i, p+i);
if((t >> p[i]) & 1)
num[q[i]] = 1;
}
int ans = 0;
for(int i = 1; i <= m; i++)
if(!num[q[i]]){
if(vis[p[i]])
continue;
ans++;
vis[p[i]] = 1;
}
if(!n && !m && k-ans == 64){
//超范围
puts("18446744073709551616");
return 0;
}
ull sum = 1;
for(int i = 1; i <= k-ans; i++)
sum *= 2;
printf("%ull", sum-n);
return 0;
}
回复
共 0 条回复,欢迎继续交流。
正在加载回复...