int main(){
//寻找异或的个数
int n;cin >> n;
int sum = 0;
map<int,int> count;
vector<int> dp(n,0);
vector<int> xor_sum(n);
for (int i=0; i<n; i++) {
int temp;cin >> temp;
sum = sum ^ temp;
xor_sum[i] = sum;
if(count[sum] ==0){
count[sum] = i+1;//id+1
//当sum为0的第一次的情况时进行额外的判断一下
if(sum == 0){
dp[i] = max(dp[0]+1,dp[i-1]);
}
}else{
int start_id = count[sum];
dp[i] = max(dp[start_id-1]+1,dp[i-1]);
count[sum] = i+1;
}
}
//假设到这里了xor_sum = 3 3 1 3
cout << dp[n-1] << endl;
return 0;
}为什么我这代码过不了ac啊。。。求问呢