社区讨论
Hack
P8743 [蓝桥杯 2021 省 A] 异或数列参与者 4已保存回复 7
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 7 条
- 当前快照
- 1 份
- 快照标识符
- @lo1p8de4
- 此快照首次捕获于
- 2023/10/23 00:44 2 年前
- 此快照最后确认于
- 2023/11/03 01:25 2 年前
我这个代码样例都没过,AC了qwq。
#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 条回复,欢迎继续交流。
正在加载回复...