F.A.Q
Hand In Hand
Online Acmers
Problem Archive
Realtime Judge Status
Authors Ranklist
 
     C/C++/Java Exams     
ACM Steps
Go to Job
Contest LiveCast
ICPC@China
Best Coder beta
VIP | STD Contests
    DIY | Web-DIY beta
Author ID 
Password 
 Register new ID

BD String

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)
Total Submission(s): 1830    Accepted Submission(s): 776


Problem Description
众所周知,度度熊喜欢的字符只有两个: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$的个数是多少?

 

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

每组数据包含两个数$L$和$R(1 \leq L \leq R \leq 10^{18})$ 。
 

Output
对于每组数据,输出$S(2^{1000})$表示的字符串的第$L$位到第$R$位中$B$的个数。
 

Sample Input
3 1 3 1 7 4 8
 

Sample Output
2 4 3
 

Source
 

Statistic | Submit | Discuss | Note
Hangzhou Dianzi University Online Judge 3.0
Copyright © 2005-2024 HDU ACM Team. All Rights Reserved.
Designer & Developer : Wang Rongtao LinLe GaoJie GanLu
Total 0.000000(s) query 1, Server time : 2024-04-20 04:51:18, Gzip enabled