/ SeriousOJ /

Record Detail

Accepted


  
# Status Time Cost Memory Cost
#1 Accepted 1ms 512.0 KiB
#2 Accepted 2ms 540.0 KiB
#3 Accepted 134ms 540.0 KiB
#4 Accepted 219ms 5.734 MiB
#5 Accepted 227ms 7.43 MiB
#6 Accepted 114ms 540.0 KiB
#7 Accepted 112ms 336.0 KiB
#8 Accepted 112ms 556.0 KiB
#9 Accepted 228ms 7.668 MiB
#10 Accepted 98ms 2.254 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, int>freq1, freq2;
       freq1[0] = 0, freq2[0]++;
       int64_t dp[n] = {};
       int xr = 0;
       int64_t ans = 0;
       for(int i = 1, x; i <= n; i++)
       {
           cin >> x;
           xr ^= x;
           if(freq1.find(xr) != freq1.end())
           {
               int a = i - freq1[xr] - 1;
               dp[i] = 1LL * a * freq2[xr] + dp[freq1[xr]] + freq2[xr] - 1;
               ans += dp[i];
           }
           freq1[xr] = i, freq2[xr]++;
       }
       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 08:57:48
Judged At
2024-11-14 08:57:48
Judged By
Score
100
Total Time
228ms
Peak Memory
7.668 MiB