P8567 [JRKSJ R6] Nothing
题目背景
【此处应有图】
题目描述
我们定义 $f(x)$ 表示 $x$ 在 $2$ 进制下最低的 $1$ 的位置(你需要注意,二进制下的最低位是第 $0 $ 位)。以下是其在 `C++` 语言中的代码(未考虑数据类型造成的问题):
```c++
int f(int x){
int ans = 0;
while (x % 2 == 0){
x /= 2;
ans += 1;
}
return ans;
}
```
共有 $T$ 组询问,每组询问给定区间 $[l,r]$,求有多少个 $i\in [l,r]$ 使得 $f(i)< f(i+1)$。
输入格式
无
输出格式
无
说明/提示
### 数据规模
本题采用捆绑测试。
| $\text{Subtask}$ | $T\le$ | 特殊限制 | $\text{Score}$ |
| :----------: | :----------: | :----------: | :----------: |
| $1$ | $10^5$ | $l=r$ | $10$ |
| $2$ | $10^4$ | $r-l\le10^3$ | $30$ |
| $3$ | $10^5$ | $r\le10^6$ | $20$ |
| $4$ | $10^5$ | 无 | $40$ |
对于 $100\%$ 的数据,$1\le T\le 10^5$,$1\le l\le r\le 10^{18}$。