B3978 [信息与未来 2024] 幸运数字

题目描述

如果一个正整数的二进制表示中,每个比特($0$ 或 $1$)的左边或右边都至少有一个相同的比特,Dr. X 就认为它是一个“幸运数字”。例如: - $(1)_2=(1)_{10}$ 有落单的 $1$,它不是幸运数字。 - $(110111)_2=(55)_{10}$ 有落单的 $0$,它不是幸运数字。 - $(111110011)_2=(499)_{10}$ 是幸运数字。 - $(110011001100)_2=(3276)_{10}$ 是幸运数字。 对于给定的 $a$ 和 $b$,Dr. X 希望你求出 $a, a + 1, a + 2, \dots, b$ 中幸运数字的数量。

输入格式

输入空格分隔的整数 $a$ 和 $b$。

输出格式

输出一行一个整数,代表 $a$ 和 $b$ 之间幸运数字的数量。

说明/提示

对于 $100\%$ 的数据,满足 $1 \leq a \leq b \leq 10^6$。 >本题原始满分为 $15\text{pts}$。