#HK6439. Popcount Xor

Popcount Xor

题目描述

求从 00 到 n−1n - 1 中整数 popcount⁡\operatorname{popcount} 值的异或和。

其中 popcount⁡(x)\operatorname{popcount}(x) 表示 xx 在二进制下 11 的个数。

输入格式

一行一个无前导零的二进制整数 nn。

输出格式

一行一个整数表示异或和。

110
1

对于样例 1,n=6n = 6,答案为 0⊕1⊕1⊕2⊕1⊕2=10 \oplus 1 \oplus 1 \oplus 2 \oplus 1 \oplus 2 = 1。

1011101011
13
1010100101110101111010100010101010101011110101010
37

数据范围与提示

共 2020 个测试点,每个测试点 55 分。

设 kk 为输入串的长度。
对于所有数据,1≤k≤2241\le k \le 2^{24}。

测试点编号 1≤k≤1 \le k \le 特殊性质
1∼21\sim 2 1717 无
3∼43\sim 4 2929
5∼65\sim 6 2242^{24} nn 为 22 的整数次幂
77 10310^3 无
8∼108\sim10 10410^4
1111 10510^5
12∼1412\sim 14 3×1053\times 10^5
1515 2202^{20}
1616 2212^{21}
1717 2222^{22}
1818 2232^{23}
19∼2019\sim 20 2242^{24}