zoukankan      html  css  js  c++  java
  • HDU 2044 一只小蜜蜂(递归)

                                     一只小蜜蜂...

    Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
    Total Submission(s): 54056    Accepted Submission(s): 19544


    Problem Description
    有一只经过训练的蜜蜂只能爬向右侧相邻的蜂房,不能反向爬行。请编程计算蜜蜂从蜂房a爬到蜂房b的可能路线数。
    其中,蜂房的结构如下所示。
     
    Input
    输入数据的第一行是一个整数N,表示测试实例的个数,然后是N 行数据,每行包含两个整数a和b(0<a<b<50)。
     
    Output
    对于每个测试实例,请输出蜜蜂从蜂房a爬到蜂房b的可能路线数,每个实例的输出占一行。
     
    Sample Input
    2 1 2 3 6
     
    Sample Output
    1 3
    【分析】:
    1)每到一个点的路径数肯定等于它左边左下方(左上方)路径之和
    2)设从a走到b之间一共走n步,则有:
                      dp[n]   =dp[n-1]+dp[n-2];
                      dp[n-1]=dp[n-2]+dp[n-3];
                      dp[n-2]=dp[n-3]+dp[n-4];
                                   ......
    不就是斐波那契数列么?
    #include <iostream>
    #include <cstdio>
    #include <cmath> 
    using namespace std;
    long long a[55];
    int T,n,m;
    int main()
    {    
        a[0]=0;
        a[1]=1;
        a[2]=2;
        for (int i=3; i<=50; i++)
        {
            a[i]=a[i-1]+a[i-2];
        }
        cin >> T;
        while (T--)
        {
            cin >> n >> m;
            cout << a[m-n] << endl;
        }
        return 0;
    }
    

      

  • 相关阅读:
    JS基础类型和引用类型
    ul的margin撑不开想要的距离的办法
    html中的列表
    BEM的命名规则
    意义模糊的函数签名……文档注释
    最基础,新手入门第一段代码
    Cookie的使用
    用servlet校验密码2
    用servlet进行用户名和密码校验
    登录页面
  • 原文地址:https://www.cnblogs.com/Roni-i/p/7244620.html
Copyright © 2011-2022 走看看