蒟蒻代码求调
查看原帖
蒟蒻代码求调
536191
__Shao__楼主2022/9/29 17:07
#include<bits/stdc++.h>
using namespace std;
#define rt register int
int n,m,c,k,useless;
int a[1000005],b[1000005];
int book[100000];
int Real[100000];
int main()
{
	freopen("P7076_13.in","r",stdin);
	freopen("P7076_13.out","w",stdout);
	scanf("%d%d%d%d",&n,&m,&c,&k);
	for(rt i=1;i<=n;++i)
		scanf("%d",&a[i]);
	for(rt i=1;i<=m;++i)
	{
		scanf("%d",&b[i]);
		scanf("%d",&useless);
	}
	long long endnum=0;
	for(rt i=1;i<=n;++i)
		endnum|=a[i];
//	printf("%d\n",endnum);
	int cnt=0;
	while(endnum>0){
		if(endnum&1){
			Real[cnt]=1;
		}
		endnum>>=1;
		++cnt;
	}
//	for(rt i=cnt-1;i>=0;i--)
//		printf("i=%d %d\n",i,Real[i]);
	for(rt i=0;i<=10000;++i)book[i]=2;
	for(rt i=1;i<=m;++i)
		if(!Real[b[i]])book[b[i]]=1;
//	for(rt i=k-1;i>=0;i--){
//		printf("i=%d %d\n",i,book[i]);
//	}
	long long ans=1;
	for(rt i=k-1;i>=0;i--)
		ans*=book[i];
	ans-=n;
	printf("%lld",ans);
	return 0;
}

从第十三个点开始错的,60分代码。

2022/9/29 17:07
加载中...