一、题目编号:
1011
二、简单题意:
有一只经过训练的蜜蜂只能爬向右侧相邻的蜂房,不能反向爬行。计算蜜蜂从蜂房a爬到蜂房b的可能路线数。
1011
二、简单题意:
有一只经过训练的蜜蜂只能爬向右侧相邻的蜂房,不能反向爬行。计算蜜蜂从蜂房a爬到蜂房b的可能路线数。
三、解题思路形成过程
要想知道从a到b可能的路线数就需要知道到达b-1的路线数和b-2的路线数,递归回去即可。注意观察规律,对于a不等于1的情况都可以转化为a为1来做。
要想知道从a到b可能的路线数就需要知道到达b-1的路线数和b-2的路线数,递归回去即可。注意观察规律,对于a不等于1的情况都可以转化为a为1来做。
四、感想
思路并不难想。开始提交的代码超时,想了想递归过程太费时间了,于是进行了预处理。但是提交后wa了。。还需要考虑数据是否太大溢出的问题。
思路并不难想。开始提交的代码超时,想了想递归过程太费时间了,于是进行了预处理。但是提交后wa了。。还需要考虑数据是否太大溢出的问题。
五、AC代码
#include<iostream>
using namespace std;
int main()
{
long long v[52];
int n,a,b;
v[1]=1;
v[2]=1;
for(int i=3;i<52;i++)
{
v[i]=v[i-1]+v[i-2];
}
cin>>n;
while(n--)
{
cin>>a>>b;
b=b-(a-1);
cout<<v[b]<<endl;
}
return 0;
}
using namespace std;
int main()
{
long long v[52];
int n,a,b;
v[1]=1;
v[2]=1;
for(int i=3;i<52;i++)
{
v[i]=v[i-1]+v[i-2];
}
cin>>n;
while(n--)
{
cin>>a>>b;
b=b-(a-1);
cout<<v[b]<<endl;
}
return 0;
}