AT_abc129_e.[ABC129E] Sum Equals Xor

普及+/提高

通过率:0%

AC君温馨提醒

该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

给定一个正整数 LL,以二进制形式表示。请计算满足以下条件的非负整数对 (a,b)(a, b) 的个数:

  • a+bLa + b \leq L
  • a+b=a XOR ba + b = a\ \text{XOR}\ b

由于答案可能非常大,请输出对 109+710^9 + 7 取模的结果。

XOR 的定义如下:

对于整数 A,BA, B,它们的按位异或 a XOR ba\ \text{XOR}\ b 定义为:

a XOR ba\ \text{XOR}\ b 用二进制表示时,第 2k2^k 位(k0k \geq 0)的值为:如果 A,BA, B 的二进制表示中第 2k2^k 位只有一个为 11,则该位为 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 取模。

输入输出样例

  • 输入#1

    10

    输出#1

    5
  • 输入#2

    1111111111111111111

    输出#2

    162261460

说明/提示

限制

  • LL 以二进制形式给出,首位一定是 11
  • 1L<21000011 \leq L < 2^{100001}

样例解释 1

满足条件的 (a,b)(a, b)(0,0), (0,1), (1,0), (0,2), (2,0)(0, 0),\ (0, 1),\ (1, 0),\ (0, 2),\ (2, 0)55 组。

首页