In past few months, I solved 4-5 problems in live contests. Where the problem reduces to check if every number in a range occurs even number of times. I first mapped the values into arbitrary large random numbers and then used range XOR to determine if all them occurred even number of times.

After contest, I've heard that such solution using range XOR can be hacked using Gaussian Elimination. Can someone please explain me the process? I know Gaussian Elimination, but can't figure this out.

[I've heard that this problem — Check if all every number is a range has even frequency — can be solved by polynomial hashing too. Can someone explain that? Also is there any deterministic solution not using MO's algo?]

For each position

iyou can calc binary string of lengthn.j'th bit will be 1 if there are odd number of positions with numberjon prefix of lengthiand 0 otherwise. After that to check segment [l;r] you just need to check ifstr_{i - 1}=str_{j}, and you can do it with polynomial hashing.