当前你的浏览器版本过低,网站已在兼容模式下运行,兼容模式仅提供最小功能支持,网站样式可能显示不正常。
请尽快升级浏览器以体验网站在线编辑、在线运行等功能。

建议使用的浏览器:

谷歌Chrome 火狐Firefox Opera浏览器 微软Edge浏览器 QQ浏览器 360浏览器 傲游浏览器

5694:BD String

题目描述
众所周知,度度熊喜欢的字符只有两个:B和D。

今天,它发明了一种用B和D组成字符串的规则:

$S(1)=B$

$S(2)=BBD$

$S(3)=BBDBBDD$



$S(n)=S(n-1)+B+reverse(flip(S(n-1))$

其中,$reverse(s)$指将字符串翻转,比如$reverse(BBD)=DBB$,$flip(s)$指将字符串中的$B$替换为$D$,$D$替换为$B$,比如$flip(BBD)=DDB$。

虽然度度熊平常只用它的电脑玩连连看,这丝毫不妨碍这台机器无与伦比的运算速度,目前它已经算出了$S(2^{1000})$的内容,但度度熊毕竟只是只熊,一次读不完这么长的字符串。它现在想知道,这个字符串的第$L$位(从1开始)到第$R$位,含有的$B$的个数是多少?

输入解释
第一行一个整数$T$,表示$T(1 \leq T \leq 1000)$ 组数据。

每组数据包含两个数$L$和$R(1 \leq L \leq R \leq 10^{18})$ 。
输出解释
对于每组数据,输出$S(2^{1000})$表示的字符串的第$L$位到第$R$位中$B$的个数。
输入样例
3
1 3
1 7
4 8
输出样例
2
4
3
来自杭电HDUOJ的附加信息
Recommend wange2014

该题目是Virtual Judge题目,来自 杭电HDUOJ

源链接: HDU-5694

最后修改于 2020-10-25T23:24:52+00:00 由爬虫自动更新

共提交 0

通过率 --%
时间上限 内存上限
2000/1000MS(Java/Others) 65536/65536K(Java/Others)