其他分享
首页 > 其他分享> > 1411. 给 N x 3 网格图涂色的方案数

1411. 给 N x 3 网格图涂色的方案数

作者:互联网

涂色方案分成两类

6个xyx型和6个xyz型

对于每个xyx型的涂色方案,都有4个对应的涂色可以与其相邻,这4个中有2个xyx型的和2个xyz型的

对于每个xyz型的涂色方案,都有5个对应的涂色可以与其相邻,这5个中有2个xyx型的和3个xyz型的

设dp[i][0]表示最后一行为xyx的涂色方案数

因为每个xyx都有2个xyx与其对应,每个xyz都有2个xyx与其对应

所以dp[i][0] = 2 * dp[i - 1][0] + 2 * dp[i - 1][1]

同理dp[i][1] = 2 * dp[i - 1][0] + 3 * dp[i  -1][1]

class Solution {
public:
    int dp[50010][2];
    int MOD = 1e9 + 7;
    int numOfWays(int n) {
        dp[1][0] = 6;
        dp[1][1] = 6;
        for(int i = 2; i <= n; i++)
        {
            dp[i][0] = (2 * (long long)dp[i - 1][0] + 2 * (long long)dp[i - 1][1]) % MOD;
            dp[i][1] = (2 * (long long)dp[i - 1][0] + 3 * (long long)dp[i - 1][1]) % MOD;
        }
        return (dp[n][0] + dp[n][1]) % MOD; 
    }
};

 

标签:方案,xyx,xyz,网格,int,涂色,1411,dp
来源: https://www.cnblogs.com/WTSRUVF/p/15423384.html