re 求助
查看原帖
re 求助
225866
MitsukiMomo楼主2020/11/12 20:47
#include<bits/stdc++.h>
using namespace std;
unsigned long long a[1000005];
bool eList[65];
int main(){
	int n,m,c,x,y,k;
	unsigned long long ans=1;
	scanf("%d%d%d%d",&n,&m,&c,&k);
	for(int i=1;i<=n;i++)scanf("%llu",&a[i]); 
	for(int i=1;i<=m;i++)scanf("%d%d",&x,&y),eList[x]=1;
	for(int i=1;i<=n;i++){
		int tmp=0;
		while(a[i]>>tmp){
			bool now=(a[i]>>tmp)&1;
			if(eList[tmp]&&now)eList[tmp]=0;
			tmp++;
		}
	}
	for(int i=0;i<k;i++)if(!eList[i])ans*=2;
	if(ans==0&&n==0)return puts("18446744073709551616"),0;
	printf("%llu\n",ans-n);
	return 0;
}
2020/11/12 20:47
加载中...