代码求调
查看原帖
代码求调
422996
HeCao2008楼主2022/10/9 18:06

用了Alex_Wei的方法

再这样下去我就和题解一样了,到底哪里出了问题?

#include<bits/stdc++.h>
#define ull unsigned long long
ull n,m,c,k,flag,use,ans;
inline ull read(){
	ull cc=0;char c=getchar();
	while(!isdigit(c))c=getchar();
	while(isdigit(c)){
		cc=cc*10+c-'0';
		c=getchar();
	}
	return cc;
}
using namespace std;
int main(){
	n=read();m=read();c=read();k=read();
//	if(n==0&&m==0&&k==64){printf("18446744073709551616\n");return 0;}
	for(ull i=1;i<=n;i++)flag|=read(); //统计每位是否有1 
	for(ull i=1;i<=m;i++)use|=1<<read(),read(); //计算这位是不是有限制 
	for(ull i=0;i<k;i++)ans+=!((flag>>i)&1)||((use>>i)&1);
	if(ans==64&&!n)printf("18446744073709551616\n");
	else cout<<(ans==64?-n:(1ull<<ans)-n)<<endl;
	return 0;
}
2022/10/9 18:06
加载中...