I am getting TLE in XOREngine problem, asked in March Long challenge 20.
My code is here https://www.codechef.com/viewsolution/30506244
Can someone help me, please ?
You are XORing p with all the elements of A[i]. XOR might look like a O(1) but it actually has to check all the bits and then it provides you with the XOR.
Use these property: TLE in ENGXOR
Furthermore, you just need to iterate over arr[i] only 1 time. Count how many numbers have even bits or odd bits.
Take input p. Check if p has even bits or odd bits. You have your answer.
try this way , initiate a new array of size 10^8 and store the number of bits for each number from 1 to 10^8 , now get the number of bits you want for any number while iterating over the given array .
Thanks a lot bro
You can run a loop from 0 to 255 and create a lookup table. It will give you bits for any number.
No need to iterate over 10^8.
@hackinet , oh this is new to me now , thanks for posting that
solution if you just want to count the number of 1s in a binary representation of a number __builtin_popcount() is a good function to use as well. Reference here if you want to learn more Errichto’s Blog
yeah I used the same approach , thanks for the blog…