60求调qaq
查看原帖
60求调qaq
1065103
Atri_Lobato楼主2024/10/11 22:23
#include<iostream>
#include<cstdio>
using namespace std;
int n,m,c,k;
int a[1000005];
__int128 ans=1;
__int128 bol=0;
bool need[65];
bool provide[65];
void write(__int128 x)
{
	if(x<0)
	putchar('-'),x*=-1;
	if(x/10)
	write(x/10);
	putchar(x%10+'0');
}
void apart()
{
	int tmp=0;
	while(bol)
	{
		need[tmp]=bol%2;
		bol=bol>>1;
		tmp++;
	}
}
int main()
{
	scanf("%d%d%d%d",&n,&m,&c,&k);
	for(int i=1;i<=n;i++)
	{
		scanf("%d",&a[i]);
		bol|=a[i];
	}
//	write(bol);
//	cout<<'\n';
	apart();
	for(int i=1;i<=m;i++)
	{
		int p,q;
		scanf("%d%d",&p,&q);
		provide[p]=1;
	}
	for(int i=0;i<=k-1;i++)
	{
		if(!(need[i]==0&&provide[i]==1))
		{
			ans=ans<<1;
		}
	}
	write(ans-n);
	return 0;
}
2024/10/11 22:23
加载中...