比赛 |
20111107 |
评测结果 |
AWWWWWWEAA |
题目名称 |
产生01串 |
最终得分 |
30 |
用户昵称 |
kaaala |
运行时间 |
0.000 s |
代码语言 |
C++ |
内存使用 |
0.00 MiB |
提交时间 |
2011-11-07 09:53:01 |
显示代码纯文本
#include<iostream>
#include<fstream>
using namespace std;
int n;
long long a,b,ans,f[101],g[101];
void fibonacci()
{
int i;
f[1]=1;
f[2]=2;
g[1]=1;
g[2]=1;
for(i=3;i<=100;i++)
{
f[i]=f[i-1]+f[i-2];
g[i]=g[i-1]+g[i-2];
}
}
int work(long long a,int i)
{
unsigned long long sum;
if(a==0)
return 0;
if(a==f[i])
return g[i];
if(a<=f[i])
return work(a,i-1);
else
{
sum=work(a-f[i],i-2);
return g[i]+sum;
}
}
int main()
{
int i;
ifstream fin("infinit.in");
ofstream fout("infinit.out");
fibonacci();
fin>>n;
for(i=1;i<=n;i++)
{
fin>>a>>b;
ans=work(b,92)-work(a-1,92);
fout<<ans<<endl;
}
fin.close();
fout.close();
return 0;
}