专题三 Problem K

一、题目编号:
          1011
二、简单题意:
         有一只经过训练的蜜蜂只能爬向右侧相邻的蜂房,不能反向爬行。计算蜜蜂从蜂房a爬到蜂房b的可能路线数。
三、解题思路形成过程
         要想知道从a到b可能的路线数就需要知道到达b-1的路线数和b-2的路线数,递归回去即可。注意观察规律,对于a不等于1的情况都可以转化为a为1来做。
四、感想
         思路并不难想。开始提交的代码超时,想了想递归过程太费时间了,于是进行了预处理。但是提交后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;
}

你可能感兴趣的:(专题三 Problem K)