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;
    }
};
相关推荐
Book思议-14 小时前
【数据结构实战】链表找环入口的经典问题:快慢指针法
c语言·数据结构·算法·链表
tankeven14 小时前
HJ135 计树
c++·算法
㓗冽14 小时前
时间转换-进阶题12
c++·算法
炽烈小老头14 小时前
【 每天学习一点算法 2026/03/19】子集
学习·算法
我能坚持多久14 小时前
【初阶数据结构11】——链式二叉树知识补充
数据结构·算法
liuyao_xianhui15 小时前
优选算法_两数之和_位运算_C++
java·开发语言·数据结构·c++·算法·链表·动态规划
靠沿15 小时前
【优选算法】专题十六——BFS解决最短路径问题
redis·算法·宽度优先
博风15 小时前
算法:双指针解:盛最多水的容器
算法·leetcode
童话ing15 小时前
【Golang】Golang Map数据结构底层原理
数据结构·golang·哈希算法
夏乌_Wx15 小时前
图 | 3道LeetCode常见笔试、面试题汇总
算法