来个大哥看看啊,我先做题后看题解,发现思路一模一样我的代码就是过不了
查看原帖
来个大哥看看啊,我先做题后看题解,发现思路一模一样我的代码就是过不了
1232566
Wh1t3zZlo楼主2024/4/12 20:50
#include<iostream>
using namespace std;
int a[25]={}, c[25]={},d[25]={};
int main()
{
	int T;
	cin >> T;
	while (T--)
	{
		int n,b,sum=0;
		cin >> n;
		while (n--)
		{
			cin >> b;
			for (int j = 0; j<=21;j++)
			{
				if ((b>>j)&1)
				{
					a[j] ^= 1;
					d[j]++;
				}
				else c[j] ^= 1;
			}
			sum^=b;
		}
		if(!sum)
		{
			cout<<0<<endl;
			continue; 
		}
		for (int i = 21; i>=0; i--)
		{
			if (a[i] == 0)
			{
				continue;
			}
			else if(d[i]==1)
			{
				cout<<1<<endl;
				break;
			}
			else if (c[i] == 1)
			{
				cout << -1 << endl;
			}
			else if (c[i] == 0)
			{
				cout << 1 << endl;
			}
			break;
		}
	}
	return 0;
}
2024/4/12 20:50
加载中...