传统题 1000ms 256MiB

[USACO06NOV] 圆数

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

题目描述

如果一个正整数的二进制表示中,00 的数目不小于 11 的数目,那么它就被称为「圆数」。

例如,99 的二进制表示为 10011001,其中有 22002211。因此,99 是一个「圆数」。

请你计算,区间 [l,r][l,r] 中有多少个「圆数」。

输入格式

一行,两个整数 l,rl,r

输出格式

一行,一个整数,表示区间 [l,r][l,r] 中「圆数」的个数。

样例 #1

样例输入 #1

2 12

样例输出 #1

6

提示

【数据范围】

对于 100%100\% 的数据,1l,r2×1091\le l,r\le 2\times 10^9


【样例说明】

区间 [2,12][2,12] 中共有 66 个「圆数」,分别为 2,4,8,9,10,122,4,8,9,10,12

数位DP(递推型)

未认领
状态
已结束
题目
11
开始时间
2023-11-19 0:00
截止时间
2024-6-30 23:59
可延期
24 小时