poj2411 2663 2420 dp+样儿子紧收缩(dafa888骨牌效实)

2018-11-29 -

  题目描绘:用1*2?的矩形经度过构成合并成父亲矩形,寻求合并成指定的父亲矩形拥有几种合并法。

  比值先?我们先寻求用1*2?的矩形合并成?n*m的矩形拥有好多种合并法

  当n*m为零数数时,壹定是不会合并出产到来的,鉴于想要合并出产到来就需寻求整顿数倍的小矩形数量。

  为了快度减缓了算法,要把m,n中小的阿谁当做列

  分两个步儿子:1)?先寻求出产相邻两行的转募化相干?

  2)?经度过相邻两行的转募化相干算出产经度过n次转募化拥有几种方法能合并成n*m的矩阵

  1)?样儿子标注识表记标注帜?左右放和壹竖放的下壹个均为1,壹竖放的上壹个和不停为0?,每行却以转募化为1个2进制数。当此雕刻壹行拜候完一齐时,就会违反掉落上壹行样儿子,和该行样儿子,鉴于所无情景邑是我们设置的,因此pre样儿子壹定会转募化为now样儿子

  关于每壹个位置,我们拥有叁种停方法:1.?壹竖直停2.?程度停3.?不停

  d为以后列号?,初始募化d,?now,?pre邑为0。now为以后行,pre为以后行的上壹行

  1.?d?=?d?+?1,?now?<

  2.?d?=?d?+?2,?now?<

  3.?d?=?d?+?1,?now?<

  鉴于转变样儿子拥有很多种,因此用dfs去枚举各种却行的样儿子。

  下面是dfs完成:

  

  2)?寻求出产到来相邻两行之间的样儿子转募化,下面将寻求经度过n次转募化后最末样儿子为(1<

  

  当n很父亲的时分,就不能用上述的方法算了,此雕刻个时分矩阵的优势就体即兴出产到来了

  异样是寻求经度过n次转募化,从初始态到终态拥有几种转募化法

  确立矩阵的方法很骈杂,矩阵的父亲小为(1<

  1、poj2411?题意:给定壹个长广大为怀小于等于11的矩形,讯问用1×2的小矩形堵满,拥有好多种方法。

  2、poj2663?题意:给定1*2的小矩形,去合并接壹个3*n(n<30)的矩形,讯问拥有好多种方案。

  3、poj3420?题意:给定1*2的小矩形,去合并接壹个4*n(n<10^9)的矩形,讯问拥有好多种方案。N此雕刻么父亲面提交铰壹定是不行了,因此我们要用矩阵快快幂终止快度减缓了,此雕刻个转变矩阵何以构造呢,我们却以直接用pre样儿子转变到now样儿子采取邻接矩阵的方法表述就好了。此雕刻个矩阵的父亲小为at[16][16],at[15][15]坚硬是最末要寻求的样儿子