社区讨论

Hack

P8743 [蓝桥杯 2021 省 A] 异或数列参与者 4已保存回复 7

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
7 条
当前快照
1 份
快照标识符
@lo1p8de4
此快照首次捕获于
2023/10/23 00:44
2 年前
此快照最后确认于
2023/11/03 01:25
2 年前
查看原帖
我这个代码样例都没过,AC了qwq。
建议把样例加入Hack数据。
CPP
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll read()
{
	ll number=0,check=1;
	char tmp=getchar();
	while(tmp<'0'||tmp>'9')
	{
		if(tmp=='-')
		{
			check=-1;
		}
		tmp=getchar();
	}
	while(tmp>='0'&&tmp<='9')
	{
		number=(number<<1)+(number<<3)+(tmp&15);
		tmp=getchar();
	}
	return number*check;
}
void write(ll x)
{
	if(x<0)
	{
		putchar('-');
		x=-x;
	}
	if(x>9)
	{
		write(x/10);
	}
	putchar(x%10+'0');
}
const ll N=110;
ll t,n,x,tong[N],ans;
int main()
{
	t=read();
	while(t--)
	{
		memset(tong,0,sizeof(tong));
		n=read();
		for(int i=1;i<=n;i++)
		{
			x=read();
			ans^=x;
			for(int j=0;j<=20;j++)
			{
				tong[j]+=(x>>j)&1;
			}
		}
		if(!ans)
		{
			write(0);
			putchar('\n');
		}
		else
		{
			for(int i=20;i>=0;i--)
			{
				if(!(tong[i]&1))
				{
					continue;
				}
				else if(tong[i]==1)
				{
					write(1);
					putchar('\n');
				}
				else if((n-tong[i])&1)
				{
					write(-1);
					putchar('\n');
				}
				else
				{
					write(1);
					putchar('\n');
				}
				break;
			}
		}
	}
	return 0;
}

回复

7 条回复,欢迎继续交流。

正在加载回复...