HDOJ 2046 骨牌鋪方格

2021-08-21 15:44:47 字數 796 閱讀 9406

problem description

在2×n的乙個長方形方格中,用乙個1× 2的骨牌鋪滿方格,輸入n ,輸出鋪放方案的總數.

例如n=3時,為2× 3方格,骨牌的鋪放方案有三種,如下圖:

輸入資料由多行組成,每行包含乙個整數n,表示該測試例項的長方形方格的規格是2×n (0output

對於每個測試例項,請輸出鋪放方案的總數,每個例項的輸出佔一行。

sample input

1 3 2

sample output

1 3 2

這個題與超級樓梯的實質是一樣的,骨牌橫著放佔兩格,豎著放佔一格,所以就只用算第n-1,n-2方格的情況就好。

從第n-1個方格到第n個,只能豎著放乙個,所以有a[n-1]種情況;

從第n-2個方格到第n個,可以橫放也可以豎著放,但是豎著放的時候,會與上邊一種情況重合,所以有a[n-2]種情況;

所以第n個總共有a[n] = a[n-1] + a[n-2]種情況。

注意:做的時候要用long long int  不然會越界。

#includeusing namespace std;

int main()

; a[0]=1;

a[1]=2;

for(int i=2;i

cout

hdoj 2046 骨牌鋪方格

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

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 張骨牌的放置方案總數 也可參見這個題解...