leetcode 1411(递推)

1411: 给N*3 网格图涂色的方案数

我们把满足要求的 type 都写出来,一共有 12 种:010, 012, 020, 021, 101, 102, 120, 121, 201, 202, 210, 212。

我们可以把它们分成两类:

  • ABC 类:三个颜色互不相同,一共有 6 种:012, 021, 102, 120, 201, 210;
  • ABA 类:左右两侧的颜色相同,也有 6 种:010, 020, 101, 121, 202, 212。
复制代码
class Solution {
public:
    int numOfWays(int n) {
        constexpr int MOD=1'000'000'007;
        int fi0=6,fi1=6; //n=1时的两种状态数:ABC类 or ABA类
        for(int i=2;i<=n;i++){
            int new_fi0=(2LL*fi0+2LL*fi1)%MOD;
            int new_fi1=(2LL*fi0+3LL*fi1)%MOD;
            fi0=new_fi0;
            fi1=new_fi1;
        }

        return (fi0+fi1)%MOD;
    }
};
相关推荐
tobias.b4 小时前
408真题解析-2010-6-数据结构-哈夫曼树
数据结构·计算机考研·408真题解析
tobias.b5 小时前
408真题解析-2010-7-数据结构-无向连通图
数据结构·算法·图论·计算机考研·408真题解析
良木生香7 小时前
【鼠鼠优选算法-双指针】003:快乐数 & 004:盛水最多的容器
算法
Cx330❀7 小时前
【优选算法必刷100题】第41-42题(模拟):Z 字形变换,外观数列
c++·算法
沃尔特。7 小时前
直流无刷电机FOC控制算法
c语言·stm32·嵌入式硬件·算法
CW32生态社区7 小时前
CW32L012的PID温度控制——算法基础
单片机·嵌入式硬件·算法·pid·cw32
Cx330❀7 小时前
【优选算法必刷100题】第038题(位运算):消失的两个数字
开发语言·c++·算法·leetcode·面试
漫随流水7 小时前
leetcode回溯算法(93.复原IP地址)
数据结构·算法·leetcode·回溯算法
燃于AC之乐7 小时前
我的算法修炼之路--5——专破“思维陷阱”,那些让你拍案叫绝的非常规秒解
c++·算法·贪心算法·bfs·二分答案·扩展域并查集·动态规划(最长上升子序列)
艾莉丝努力练剑7 小时前
【优选算法必刷100题】第021~22题(二分查找算法):山脉数组的峰顶索引、寻找峰值
数据结构·c++·算法·leetcode·stl