gym102586 D: Xor Sum

翻译官方题解。

首先二分答案 \(M\).

假设确定了 \(b_i\) 表示 第 \(i\) 位为 1 的数的个数。如何判定?

设 group A 为已经确定 \(<M\) 的数的个数,我们要让 group A 尽量大。

Let :

\(init_i = (\text{the i-th bit of x}) + (\text{the i-th bit of (S − X)/2}) × 2\)

我们做下面的操作,可以得到一个符合条件的 \(b_i\)

\(b_i \to b_i - 2 , b_{i-1}\to b_{i-1}+4\)

consider DP :

\(dp(i,j)\) 表示确定了 \(b_{i\sim 60}\),size of group A is \(j\),min 给 \(b_{i-1}\) 加上的值。

我们只需要 \(j\le 5+\log V\) 的部分。

posted @ 2022-02-19 09:59  Rainbow_qwq  阅读(159)  评论(0)    收藏  举报