用了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();
for(ull i=1;i<=n;i++)flag|=read();
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;
}