这思路为什么有问题?
查看原帖
这思路为什么有问题?
934863
seswsw楼主2024/4/4 21:59
#include<bits/stdc++.h>
using namespace std;
long long a[200001];
int main(){
	int t;
	cin>>t;
	while(t--){
		int n;
		cin>>n;
		long long res=0;
		long long cent=0;
		for(int i=0;i<=n;i++){
			cin>>a[i];
		}
		for(int i=0;i<n;i++){
			cent=cent+cent; 
			if(res==a[i]){
				cent++;
			}
			res=res^a[i];
		}
		if(res==a[n]) cent++;
		if(cent==0){
			cout<<0<<endl;
			continue;
		}
		else{
			vector<int> v;
			while(cent!=0){
				v.push_back(cent%2);
				cent=cent/2;
			}
			for(int i=v.size()-1;i>=0;i--){
				cout<<v[i];
			} 
		}
		cout<<endl;
	}
}
2024/4/4 21:59
加载中...