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