#2821. Sum Equals Xor

0

Sum Equals Xor

Sum Equals Xor

题目描述

你被给定一个以二进制表示的正整数 LL。 有多少对非负整数 (a,b)(a, b) 满足下列条件?

a+b≤La + b \leq L a+b=a XOR ba + b = a \text{ XOR } b

由于此类配对的数量可能非常多,请将计数对 109+710^9 + 7 取模后输出。

什么是 XOR?
整数 $A$ 与 $B$ 的 XOR,$A \text{ XOR } B$,定义如下:

当 A XOR BA \text{ XOR } B 用二进制表示时,2k2^k 位上的数字(k≥0k \geq 0)为 11 当且仅当 AA 或 BB(但不是两者)在 2k2^k 位上为 11,否则为 00。

例如,3 XOR 5=63 \text{ XOR } 5 = 6。(用二进制表示:011 XOR 101=110011 \text{ XOR } 101 = 110。)

输入格式

输入按下列格式从标准输入给出: LL

输出格式

打印满足条件的 (a,b)(a, b) 对的数量,对 109+710^9 + 7 取模。

10
5
1111111111111111111
162261460

提示

LL 以二进制给出,且没有前导零。 1 \leq L < 2^{100\ 001}有五对 (a,b)(a, b) 满足条件:(0,0),(0,1),(1,0),(0,2)(0, 0), (0, 1), (1, 0), (0, 2) 和 (2,0)(2, 0)。

标签: AtCoder|abc129E

来源

AtCoder|abc129E