| 比赛 | 
    20111107 | 
    评测结果 | 
    AWWWWWWEAA | 
    | 题目名称 | 
    产生01串 | 
    最终得分 | 
    30 | 
    | 用户昵称 | 
    风华正茂 | 
    运行时间 | 
    0.000 s  | 
    | 代码语言 | 
    C++ | 
    内存使用 | 
    0.00 MiB  | 
    | 提交时间 | 
    2011-11-07 09:37:08 | 
显示代码纯文本
#include<fstream>
using namespace std;
ifstream cin("infinit.in");
ofstream cout("infinit.out");
long long Q,a,b,ge[94],wei[94],i,j,yi;
long long num(long long x,int p)
{
	if(wei[p]==x)
		return ge[p];
	if(wei[p]>=x)
		return num(x,p-1);
	else
		return (ge[p]+num(x-wei[p],p-1));
}
int main()
{
	cin>>Q;
	ge[1]=1;
	ge[2]=1;
	wei[1]=1;
	wei[2]=2;
	for(i=3;i<94;i++)
	{
		ge[i]=ge[i-1]+ge[i-2];
		wei[i]=wei[i-1]+wei[i-2];
	}
	for(i=0;i<Q;i++)
	{
		cin>>a>>b;
		yi=num(b,93);
		yi=yi-num(a-1,93);
		cout<<yi<<endl;
	}
	return 0;
}