51nod 1031 骨牌覆蓋

2021-07-15 21:35:30 字數 791 閱讀 3571

在2*n的乙個長方形方格中,用乙個1*2的骨牌排滿方格。

問有多少種不同的排列方法。

例如:2 * 3的方格,共有3種不同的排法。(由於方案的數量巨大,只輸出 mod 10^9 + 7 的結果)

input

輸入n(n <= 1000)

output

輸出數量 mod 10^9 + 7

input示例

3 output示例

3思路:

2*n的方格。考慮最右邊的兩列,若最後一列放乙個豎著的,有f[n-1],

若最後兩列放兩個橫著的有f[n-2],f[n-1]+f[n-2]=f[n]

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

using

namespace

std;

#define mod 1000000007

#define pi acos(-1.0)

#define inf 0x3f3f3f3f

typedef

long

long ll;

int f[1005];

void init()

}int main()

51NOD 1031 骨牌覆蓋

1031 骨牌覆蓋 基準時間限制 1 秒 空間限制 131072 kb 分值 10 難度 2級演算法題 在2 n的乙個長方形方格中,用乙個1 2的骨牌排滿方格。問有多少種不同的排列方法。例如 2 3的方格,共有3種不同的排法。由於方案的數量巨大,只輸出 mod 10 9 7 的結果 輸入n n 10...

51nod 1031 骨牌覆蓋

對於長為n來說,相當於n 1在後面加了乙個豎著放的,對於n 2來說相當於加了乙個2 2的格仔,但是對於乙個2 2的格仔本來有兩種畫法,由於豎著畫的那種和n 1的部分有重疊,所以只加一次即可,對於n 3,會發現三種擺法都在n 1和n 2的方法中出現過了,所以遞推公式就是f n f n 1 f n 2 ...

51Nod 1031 骨牌覆蓋

題意 在2 n的乙個長方形方格中,用乙個1 2的骨牌排滿方格。問有多少種不同的排列方法。例如 2 3的方格,共有3種不同的排法。由於方案的數量巨大,只輸出 mod 10 9 7 的結果 輸入 輸入n n 1000 輸出 輸出數量 mod 10 9 7 樣例輸入 3樣例輸出 3分析遞推方程為f n f...