HDU2044 乙隻小蜜蜂(遞推)

2021-07-13 01:53:29 字數 1143 閱讀 9181



乙隻小蜜蜂

crawling in process...

crawling failed

time limit:1000msmemory limit:32768kb64bit io format:%i64d & %i64u

submit

status

description

有乙隻經過訓練的蜜蜂只能爬向右側相鄰的蜂房,不能反向爬行。請程式設計計算蜜蜂從蜂房a爬到蜂房b的可能路線數。

其中,蜂房的結構如下所示。

input

輸入資料的第一行是乙個整數n,表示測試例項的個數,然後是n 行資料,每行包含兩個整數a和b(0

output

對於每個測試例項,請輸出蜜蜂從蜂房a爬到蜂房b的可能路線數,每個例項的輸出佔一行。

sample input

2

1 23 6

sample output

1

3

分析:

首先想到這道題是遞推的應用,於是分析題目,觀察到每個蜂房都和與它標號相鄰的前兩個標號蜂房相鄰,既是x-1號和x-2號,於是猜測這是斐波拉數列的應用,根據猜測繼續分析得到遞推公式  num(a to b) = num(b - 1) + num(b-2);以a為端點,直到a停止。於是得到ac**如下(由於資料比較大,直接用int要產生溢位所以改用__int64):

思路:想知道從a到b可能的路線數就需要知道到達b-1的路線數和b-2的路線數,即f(b)=f(b-1)+f(b-2)即斐波拉契數列遞推式(n可以達到55,所還需要注意的斐波拉契數列的遞推式求出的結果可能會溢位,因此需要用到long long型或__int64型的資料型別)。

#include int main()

while (n--)

return 0;

}

HDU 2044乙隻小蜜蜂 遞推

problem description 有乙隻經過訓練的蜜蜂只能爬向右側相鄰的蜂房,不能反向爬行。請程式設計計算蜜蜂從蜂房a爬到蜂房b的可能路線數。其中,蜂房的結構如下所示。輸入資料的第一行是乙個整數n,表示測試例項的個數,然後是n 行資料,每行包含兩個整數a和b 0output 對於每個測試例項,...

hdu2044 乙隻小蜜蜂

思路 觀察一下可以知道,比如走到7,首先要走到5或者6,要走到5,首先要先走到4或3.遞推一下即可 include includeusing namespace std define ll long long ll f 60 int n int main description 有乙隻經過訓練的蜜蜂...

HDU 2044 乙隻小蜜蜂

題目位址 思路 從起點開始,每一步可以分為兩種情況,非別是第i 1點和i 2點。利用遞迴的思想就可以寫出來。b a的值就代表從0點到b a可能的路線!錯點 1.使用遞迴函式超時,2.未看清題目要求,陣列定義成30 3.忽略了資料的增長,應該使用long long int include includ...