zoukankan      html  css  js  c++  java
  • 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; 
        }
    };
    自己选择的路,跪着也要走完。朋友们,虽然这个世界日益浮躁起来,只要能够为了当时纯粹的梦想和感动坚持努力下去,不管其它人怎么样,我们也能够保持自己的本色走下去。
  • 相关阅读:
    redis 学习笔记
    导数据方法
    数据库常用操作
    zepto.js
    shopnc
    vue.js
    laravel
    mysql进阶学习
    Python基础------生成器表达式形式、面向过程编程、内置函数部分
    Python基础----生成器、三元表达式、列表生成式、生成器表达式
  • 原文地址:https://www.cnblogs.com/WTSRUVF/p/15423384.html
Copyright © 2011-2022 走看看