HDU2046 骨牌鋪方格

2022-04-05 10:55:25 字數 446 閱讀 2943

問題鏈結:hdu2046 骨牌鋪方格。入門訓練題,用c語言編寫程式。

這是乙個典型的遞推計算題。

f(0) = 0,沒有地方擺骨牌,所以為0;

f(1) = 1,只能豎著擺放1個骨牌;

f(2) = 2,可以是橫著擺放2個骨牌,或者豎著擺放2個骨牌;

f(n) = f(n-2) + f(n-1),n>2,可以在f(n-2)的基礎上在右邊再橫著放2個骨牌(豎著放已經在f(n-1)中),也可以在f(n-1)的基礎上在右邊再豎著1個骨牌。

ac程式如下:

/* hdu2046 骨牌鋪方格 */

#include

#define maxn 50

typedef unsigned long long ull;

ull fn[maxn+1];

void setfn()

int main(void)

HDU2046骨牌鋪方格

description 在2 n的乙個長方形方格中,用乙個1 2的骨牌鋪滿方格,輸入n 輸出鋪放方案的總數.例如n 3時,為2 3方格,骨牌的鋪放方案有三種,如下圖 input 輸入資料由多行組成,每行包含乙個整數n,表示該測試例項的長方形方格的規格是2 n 0 output 對於每個測試例項,請輸...

HDU 2046 骨牌鋪方格

遞迴總體思路 對於 1張 1 2 的骨牌,它只有橫放 豎放2種情況 如果要豎放,前 n 1 張牌必須已經固定好,因而這種情況下,就是 f n 1 同理,如果要橫放,前 n 2 張牌必須已經固定好,這種情況下,就是 f n 2 把2種情況下的方案加起來,就是 n 張骨牌的放置方案總數 也可參見這個題解...

hdu2046 骨牌鋪方格

在2 n的乙個長方形方格中,用乙個1 2的骨牌鋪滿方格,輸入n 輸出鋪放方案的總數.例如n 3時,為2 3方格,骨牌的鋪放方案有三種,如下圖 輸入資料由多行組成,每行包含乙個整數n,表示該測試例項的長方形方格的規格是2 n 0對於每個測試例項,請輸出鋪放方案的總數,每個例項的輸出佔一行。1 3 2 ...