问题 U: 异或&加法

内存限制:128 MB 时间限制:1.000 S
评测方式:文本比较 命题人:
提交:352 解决:141

题目描述

大家都知道,异或的性质就相当于不带进位的二进制加法。
那么我们再稍微拓展一下,如果加法与异或在十进制中所产生的结果相同的话,会怎样呢?
给一个二进制数n,需要你找出一对非负整数x、y,使得它们符合下面的两个性质。
  • x+y<=n
  • x+y==x⊕y
那么问题来了,对于一个给定的n,能够有多少对符合条件的(x,y)呢?
结果对109+7取模。

输入

一个二进制数n
1n<2 100 001

输出

满足条件的(x,y)对的数量,对109+7取模。

样例输入 复制

100

样例输出 复制

11