HuTao_Oya_OyaOya's blog

By HuTao_Oya_OyaOya, history, 21 month(s) ago, In English

Problem Link

Problem in short : Find sum of XOR of all subarrays of size>1 in the given array of size n in linear time.

My idea is to get the prefix sum array of XORs and now the problem is reduced to finding XOR between all possible pairs in prefix XOR array.

I tried for hours to debug the code but couldn't figure out what did I do wrong. Any help would be greatly appreciated.

Old Code

UPD :

AC
What was the problem earlier ?

Thanks srinivas1999 Yenaa vaibhav2740

  • Vote: I like it
  • +3
  • Vote: I do not like it

| Write comment?
»
21 month(s) ago, hide # |
 
Vote: I like it 0 Vote: I do not like it
Solution

Code from, i just subtract the sum of all subarrays of 1 element

»
21 month(s) ago, hide # |
 
Vote: I like it +3 Vote: I do not like it
»
21 month(s) ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

To find XOR between every pair you can sum the contribution for each bit individually.

First We will make a array cnt[i] = #Number of elements with i-th bit on(equal to one).

For i-th bit we add $$$2^{i} * cnt[i] * (n - cnt[i])$$$ because i-bit will be on when there is exactly one number have that bit on.