HD 2044 一只小蜜蜂(递推)
生活随笔
收集整理的這篇文章主要介紹了
HD 2044 一只小蜜蜂(递推)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目鏈接:http://acm.hdu.edu.cn/showproblem.php?pid=2044
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
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
思路:d1[i]=d1[i-2]+d1[i-1];
如下代碼:
#include<cstdio> #include<iostream> #define N 50+10 using namespace std;long long d1[N]={1,1,1}; long long d2[N]={1,1,2}; int main(){int t;scanf("%d",&t);for(int i=3; i<=50; ++i){d1[i]=d1[i-2]+d1[i-1];}for(int i=3; i<=50; ++i){d2[i]=d2[i-2]+d2[i-1];}while(t--){int a,b;scanf("%d%d",&a,&b);if(a&1)printf("%lld\n",d1[b-(a-1)]);elseprintf("%lld\n",d2[b-a]);}return 0; }總結
以上是生活随笔為你收集整理的HD 2044 一只小蜜蜂(递推)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: HD 2048 数塔 DP(简单递推)
- 下一篇: JEECG - 基于代码生成器的J2EE