多米诺和托米诺平铺
分析
错位相减法优化状态转移方程。
状态转移方程:
由并整理得:。
实现
class Solution {
typedef long long LL;
const int M = 1e9 + 7;
int f[1010];
public:
int numTilings(int n) {
if (f[n] != 0) return f[n];
if (n == 0 || n == 1) return 1;
int res = 0;
if (n >= 1) res = (res + (LL)2 * numTilings(n - 1)) % M;
if (n >= 3) res = (res + numTilings(n - 3)) % M;
return f[n] = res;
}
};