题目大意:有一只经过训练的蜜蜂只能爬向右侧相邻的蜂房,不能反向爬行。请编程计算蜜蜂从蜂房a爬到蜂房b的可能路线数。
其中,蜂房的结构如下所示。





解题思路:1)每到一个点的路径数肯定等于它左边和左下方(左上方)的路径之和。
              2)设从a走到b之间一共走n步,则有:
                   dp[n]=dp[n-1]+dp[n-2]; dp[n-1]=dp[n-2]+dp[n-3]..............

                又是斐波那契数列~~.....
                         最近迷上切水题~哎~

代码
 1#include <iostream>
 2#include <cstdio>
 3#include <cmath>
 4
 5using namespace std;
 6
 7long long a[55];
 8int T,n,m;
 9
10int main()
11{    a[0]=0;
12     a[1]=1;
13     a[2]=2;
14     for (int i=3; i<=50; i++)
15     {
16          a[i]=a[i-1]+a[i-2];
17     }

18     cin >> T;
19     while (T--)
20     {
21         cin >> n >> m;
22         cout << a[m-n] << endl;
23     }

24     return 0;
25}

26