Official

D - I Wanna Win The Game Editorial by evima


If we consider the lowest bit and the other bits separately, “the other bits” can be reduced to the same problem with a smaller input. More specifically, let:

\(dp_i =\) the number of non-negative integers totaling \(i\) whose \(xor\) is \(0\)

Then, we have the following recurrence relation:

\[dp_i = \begin{cases} \sum_{j} \binom{N}{2*j}dp_{\left(i - 2j\right) / 2} & \text{if }i\text{ is even} \\ 0 & \text{if }i\text{ is odd} \end{cases} \]

By filling the DP table in ascending order according to this recurrence relation, we can solve the problem in \(O(M^2)\) time, excluding the precomputation for binomial coefficients.

posted:
last update: