博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
leetcode 790. Domino and Tromino Tiling
阅读量:5230 次
发布时间:2019-06-14

本文共 1166 字,大约阅读时间需要 3 分钟。

We have two types of tiles: a 2x1 domino shape, and an "L" tromino shape. These shapes may be rotated.

XX  <- dominoXX  <- "L" trominoX

Given N, how many ways are there to tile a 2 x N board? Return your answer modulo 10^9 + 7.

(In a tiling, every square must be covered by a tile. Two tilings are different if and only if there are two 4-directionally adjacent cells on the board such that exactly one of the tilings has both squares occupied by a tile.)

Example:Input: 3Output: 5Explanation: The five different ways are listed below, different letters indicates different tiles:XYZ XXZ XYY XXY XYYXYZ YYZ XZZ XYY XXY

思路:分3个状态,第i列上边凸出,下边凸出,和平的。如图,那么状态转换如图中公式。

1
转载注明出处http://www.cnblogs.com/pk28/p/8470177.html

class Solution {public:    const int mod = 1000000007;    int dp[1100][3];    int numTilings(int N) {        dp[0][0] = dp[1][0] = 1;        for (int i = 2; i <= N; ++i) {            dp[i][0] = ((dp[i-1][0] + dp[i-2][0])%mod + (dp[i-1][1] + dp[i-1][2])%mod)%mod;            dp[i][1] = (dp[i-2][0] + dp[i-1][2])%mod;            dp[i][2] = (dp[i-2][0] + dp[i-1][1])%mod;        }        return dp[N][0];    }};

转载于:https://www.cnblogs.com/pk28/p/8470177.html

你可能感兴趣的文章
应该是实例化对象的没有对属性赋值时,自动赋值为null,但不是空指针对象引用...
查看>>
从网易与淘宝的font-size思考前端设计稿与工作流
查看>>
原生HttpClient详细使用示例
查看>>
几道面试题
查看>>
搜索引擎-SHODAN
查看>>
Factory Design Pattern
查看>>
python中贪婪与非贪婪
查看>>
guava API整理
查看>>
无锁编程笔记
查看>>
jquery mobile
查看>>
在Windows环境下使用短信猫收发短信的简单配置:
查看>>
如何在vue单页应用中使用百度地图
查看>>
Ubuntu 下安装Go语言
查看>>
Application对象
查看>>
命令查看当前电脑安装所有版本.NET Core SKD
查看>>
《Photoshop CS4手绘艺术技法》
查看>>
random
查看>>
使用CSP防止XSS攻击
查看>>
unity3d--NGUI制作中文字体
查看>>
Bean属性的常用配置
查看>>