leetcode790 Domino and Tromino Tiling

思路:

dp。没有像discuss中的那样优化递推式。

实现:

 1 class Solution
 2 {
 3 public:
 4     const int MOD = 1e9 + 7;
 5     int numTilings(int N)
 6     {
 7         vector<vector<int>> dp(N + 1, vector<int>(3, 0));
 8         dp[0][0] = 1;
 9         dp[1][0] = dp[1][1] = dp[1][2] = 1;
10         for (int i = 2; i <= N; i++)
11         {
12             dp[i][0] = (((dp[i - 1][0] + dp[i - 2][1]) % MOD + dp[i - 2][2]) % MOD + dp[i - 2][0]) % MOD;
13             dp[i][1] = (dp[i - 1][0] + dp[i - 1][2]) % MOD;
14             dp[i][2] = (dp[i - 1][0] + dp[i - 1][1]) % MOD;
15         }
16         return dp[N][0] % MOD;
17     }    
18 };
原文地址:https://www.cnblogs.com/wangyiming/p/8540360.html