一只小蜜蜂(斐波那契dp)
阿新 • • 發佈:2018-07-20
表示 print 輸入數據 for while event out nss isp 有一只經過訓練的蜜蜂只能爬向右側相鄰的蜂房,不能反向爬行。請編程計算蜜蜂從蜂房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
題解:由於到達第i個蜂房只能從左上或右下到達,則到達第i個蜂房方法書為dp[i]=dp[i-1]+dp[i-2];
1 #include<stdio.h> 2 #include<string.h> 3 #include<algorithm> 4 #include<stack> 5 #include<queue> 6 #include<iostream> 7 #include<map> 8 #include<vector> 9 #define ll long long 10 #define PI acos(-1.0) 11 using namespace std; 12View Codeint main() 13 { 14 ll m,n,t; 15 ll str[1234]={0,1,1}; 16 for(ll i=3;i<=50;i++) 17 str[i]=str[i-1]+str[i-2]; 18 scanf("%d",&t); 19 while(t--) 20 { 21 scanf("%lld%lld",&m,&n); 22 23 printf("%lld\n",str[n-m+1]); 24 } 25 return0; 26 }
一只小蜜蜂(斐波那契dp)