乙隻小蜜蜂 hdu2044

2021-09-25 16:36:20 字數 1289 閱讀 4949

題源:乙隻小蜜蜂… hdu2044

題目:

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

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

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

找規律,有思路:

規律無論是從第幾個房間到第幾個房間,相鄰房間之間的走法都是1;題中要求只能往右走,則只能往比此刻房間號大的房間走;從1到2為1, 2到3的走法為從1到3的走法加上2到3的走法,類推從3到8:

先求3到4,再求3到5(3直接到5加上3到4的走法) 再求3到6(3到4的走法加上3到5的走法) 再求3到7(3到5的走法加上3到6的走法 ) 最後求3到8(3到6的走法加上3到7的走法);

ac**:

#include

#include

typedef

long

long ll;

using namespace std;

//int a[100][100];

int a,b;

ll aa[

1000];

intmain()

cout <

<

}return0;

}

今天晚上突然想到這道題,上次寫這道題時,其實當時我是用的遞迴暴力求解,後來發現超時,就放棄了,今晚忽然想起來用記憶化搜尋可以大大節省時間,為何不修改一下。試了一下,真的ac了

放**:、

#include

#include

typedef

long

long ll;

using namespace std;

//int a[100][100];

int a,b;

ll dp[

1000];

//步數可能會爆int

ll d

(int x)

//此處有坑,雖然dp陣列用long loong表示了,但是這個遞迴函式的返回值也要設定成long long

intmain()

return0;

}

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...

HDU2044 乙隻小蜜蜂

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