poj3420(状态压缩+矩阵加速)

/*
translation:
    有4*n的矩形一个,求用1*2的砖块去铺可以有几种填充方法?
solution:
    矩阵加速+状态压缩
    一看这道题以为是轮廓dp,但是由于n的值太大,所以无法进行轮廓dp,所以考虑用矩阵来加速。
    如图片所示,在第n行铺完后第n+1行的情况可以有如图所示的几种情况。注意其中0101的状态是不可能出现的。因为如果出现0101
    那么最后肯定有2个单独的空格不能填上。那么根据这几种状态可以给其编号如下
    0:0000         ----->   0000, 0011/1100, 1001, 1111
    1:0011或者1100 ----->   0000, 0011/1100
    2:0110         ----->   1001
    3:1001         ----->   0000, 0110
    4:1111         ----->   0000
    各个状态上一行可能的状态也标在右边了
    所以就有f(n,0)=f(n-1,0)+2*f(n-1,1)+f(n-1,3)+f(n-1,4)
            f(n,1)=f(n-1,0)+f(n-1,1)
            f(n,2)=f(n-1,3)
            f(n,3)=f(n-1,0)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值