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

            //sum0的第一次的情况时进行额外的判断一下

            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啊。。。求问呢