1. 题目

你有一个 n x 3 的网格图 grid ,你需要用 红,黄,绿 三种颜色之一给每一个格子上色,且确保相邻格子颜色不同(也就是有相同水平边或者垂直边的格子颜色不同)。

给你网格图的行数 n 。

请你返回给 grid 涂色的方案数。由于答案可能会非常大,请你返回答案对 10^9 + 7 取余的结果。

示例 1:
输入:n = 1
输出:12
解释:总共有 12 种可行的方法:示例 2:
输入:n = 2
输出:54示例 3:
输入:n = 3
输出:246示例 4:
输入:n = 7
输出:106494示例 5:
输入:n = 5000
输出:30228214提示:
n == grid.length
grid[i].length == 3
1 <= n <= 5000

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/number-of-ways-to-paint-n-x-3-grid
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

  • 颜色分为2种类型 ABA型,ABC型
  • 1个ABA 可以产生 3个ABA + 2个ABC
  • 1个ABC 可以产生 2个ABA + 2个ABC
class Solution {public:int numOfWays(int n) {long aba = 6, abc = 6, aba_t, abc_t, mod = 1e9+7;for(int i = 1; i < n; ++i){aba_t = (3*aba+2*abc)%mod;abc_t = (2*(aba+abc))%mod;aba = aba_t;abc = abc_t;}return (aba+abc)%mod;}
};

4 ms 5.8 MB

LeetCode 1411. 给 N x 3 网格图涂色的方案数(数学)相关推荐

  1. leetcode 5383. 给 N x 3 网格图涂色的方案数

    leetcode 5383. 给 N x 3 网格图涂色的方案数 来源:力扣(LeetCode) 你有一个 n x 3 的网格图 grid ,你需要用 红,黄,绿 三种颜色之一给每一个格子上色,且确保 ...

  2. LeetCoed 5383. 给 N x 3 网格图涂色的方案数

    5383. 给 N x 3 网格图涂色的方案数 分类:ABA, ABC各6种,每个ABA可与2ABC+3ABA结合, 每个ABC可与2ABC+2ABA结合 class Solution:def num ...

  3. 【数据结构与算法】之给Nx3网格图涂色的方案数的求解算法

    一.题目要求 你有一个 n x 3 的网格图 grid ,你需要用 红,黄,绿 三种颜色之一给每一个格子上色,且确保相邻格子颜色不同(也就是有相同水平边或者垂直边的格子颜色不同). 给你网格图的行数 ...

  4. leetcode 给N x 3网络图涂色的方案数

    1.题目详情       leetcode 给N x 3网络图涂色的方案数 你有一个 n x 3 的网格图 grid ,你需要用 红,黄,绿 三种颜色之一给每一个格子上色,且确保相邻格子颜色不同(也就 ...

  5. LeetCode 2132. 用邮票贴满网格图(DP/二维差分)

    文章目录 1. 题目 2. 解题 1. 题目 给你一个 m x n 的二进制矩阵 grid ,每个格子要么为 0 (空)要么为 1 (被占据). 给你邮票的尺寸为 stampHeight x stam ...

  6. 【NOIP模拟】T2 管道(状压dp求图的dfs序方案数)

    f[i][j]: i表示整个图走没走过的状态 j表示当前到了第j个点 存的值就是在这种情形下 可以走到的地方的状态 dp[i][j]:i表示整个图走没走过的状态 j表示当前在j点 访问剩余能去到的点的 ...

  7. 力扣LeetCode刷题心得之Python 买钢笔和铅笔的方案数

    文章目录 6061. 买钢笔和铅笔的方案数 解题思路: 第一步,光买钢笔有几种方案 第二步,买钢笔后,剩下的钱能购买多少铅笔 第三步,在买钢笔的几种方案下,剩下的钱购买铅笔有几种方案 第四步,将所有方 ...

  8. LeetCode 276. 栅栏涂色(DP)

    文章目录 1. 题目 2. 解题 2.1 DP超时解 2.2 DP解 1. 题目 有 k 种颜色的涂料和一个包含 n 个栅栏柱的栅栏,每个栅栏柱可以用其中一种颜色进行上色. 你需要给所有栅栏柱上色,并 ...

  9. Leetcode 276.栅栏涂色

    Time: 20190904 Type: Easy 考察:动态规划 题目描述 有 k 种颜色的涂料和一个包含 n 个栅栏柱的栅栏,每个栅栏柱可以用其中一种颜色进行上色. 你需要给所有栅栏柱上色,并且保 ...

最新文章

  1. python3 ssl.CertificateError: hostname manifest.googlevideo.com doesn t match either
  2. 从JVM的常见异常来看Tomcat中内存的设置
  3. 《Microsoft Sql server 2008 Internal》读书笔记--第八章The Query Optimizer(1)
  4. 短序列组装Sequence Assembly(转载)
  5. matlab径向分布函数作图_常见的概率分布(matlab作图)
  6. 网易2016年研发project师编程题(2)
  7. nat 网卡间数据包转发_nat端口转发示例
  8. Java多线程(1)--基本概念:程序、进程、线程
  9. 信息学奥赛C++语言:数一数
  10. linux的网络管理,Linux下的网络管理工具—OpenNMS
  11. Java 数组 定义一个数组,获取数组中的最大值和最小值,奇数个数和偶数个数...
  12. Matlab7.0安装教程
  13. python飞机大战项目概述需求_飞机大战需求分析报告.doc
  14. WebLogic安装教程
  15. cpu单核性能测试软件,CPU常用跑分软件 你知道那些?
  16. 计算机数学基础知识点归纳,计算机数学基础--详细介绍
  17. 堆、栈、队列的区别和联系
  18. c语言检测邮箱地址,C语言实现电子邮件地址验证程序
  19. 低代码时代的团队分工有哪些?
  20. spring 定时任务的 执行时间设置规则

热门文章

  1. Halcon中OCR的实现及关键函数解析
  2. C语言程序设计二期末考试,C语言程序设计期末考试试卷2.doc
  3. Linux Centos安装步骤
  4. RAC集群故障恢复CRS-4047,CRS-4000
  5. 前端MVC框架之 Angular
  6. jQuery 获取页面元素的属性值
  7. MySQL5.7 常用系统表大全
  8. Linux fork的写时复制
  9. Linux 内核宏 time_after解析
  10. java 对象 序列化 文件中_如何将一个java对象序列化到文件里