/ SeriousOJ /

Record Detail

Accepted


  
# Status Time Cost Memory Cost
#1 Accepted 2ms 540.0 KiB
#2 Accepted 1ms 540.0 KiB
#3 Accepted 106ms 540.0 KiB
#4 Accepted 130ms 5.652 MiB
#5 Accepted 142ms 7.266 MiB
#6 Accepted 108ms 332.0 KiB
#7 Accepted 113ms 332.0 KiB
#8 Accepted 94ms 540.0 KiB
#9 Accepted 151ms 7.441 MiB
#10 Accepted 91ms 1.805 MiB

Code

#include<bits/stdc++.h>
using namespace std;
#define fast ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0);
#define dbg(a,b,c,d) cerr<<a<<"  "<<b<<"  "<<c<<"  "<<d<<endl;
#define kill(a) {cout<<a<<endl;continue;}
#define KILL(a) {cout<<a<<endl;return 0;}
#define debug cerr<<"Error Found"<<endl;
#define mem(a,b) memset(a,b,sizeof(a))
#define lcm(a, b) (a/__gcd(a,b))*b
#define w(t) cin>>t;while(t--)
#define pi  2 * acos(0.0)
#define endl "\n"
int t, cs = 0;
const int mxn = 5e3 + 3, mod = 1e9 + 7;

int32_t main()
{
    //fast;
    w(t)
    {
       int n;
       cin >> n;
       map<int, vector<int>>mp;
       int xr = 0;
       mp[0].push_back(-1);
       for(int i = 0, x; i < n; i++)
       {
           cin >> x;
           xr ^= x;
           mp[xr].push_back(i);
       }
       int64_t ans = 0;
       for(auto i:mp)
       {
           int64_t sum = 0;
           for(auto I:i.second)sum += I;
           int sz = i.second.size();
           for(auto I:i.second)
           {
               sz--, sum -= I;
               ans += sum - 1LL * sz * (I + 1);
           }
       }
       cout << ans << endl;

    }
}

Information

Submit By
Type
Submission
Problem
P1096 Mr. Heart and the XOR Puzzle
Language
C++17 (G++ 13.2.0)
Submit At
2024-11-14 07:48:49
Judged At
2024-11-14 07:48:49
Judged By
Score
100
Total Time
151ms
Peak Memory
7.441 MiB