一亩三分地论坛

 找回密码
 获取更多干货,去instant注册!

扫码关注一亩三分地公众号
查看: 563|回复: 5
收起左侧

[算法题] tiling算法題求解

[复制链接] |试试Instant~ |关注本帖
gnijuohz 发表于 2014-3-4 01:45:48 | 显示全部楼层 |阅读模式

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看,没有帐号?获取更多干货,去instant注册!

x
Given N(integer), try to tile a 4 x N rectangle with 3 x 1 tiles.  In how many ways can it be done?


RT。周末准备参加学校里的一个编程小比赛,这是去年的一题。目前依旧没思路~
北美农民 发表于 2014-3-4 02:02:26 | 显示全部楼层
状态压缩动态规划吧。  铺瓷砖是经典应用了, 可以搜一下很多类似的
回复 支持 反对

使用道具 举报

 楼主| gnijuohz 发表于 2014-3-4 02:08:59 | 显示全部楼层

是的,2*N和3*N的不难,但4*N就让我蒙了~,求北美哥分析出递推式。。。
回复 支持 反对

使用道具 举报

北美农民 发表于 2014-3-4 02:22:33 | 显示全部楼层
gnijuohz 发表于 2014-3-3 13:08
是的,2*N和3*N的不难,但4*N就让我蒙了~,求北美哥分析出递推式。。。

别喊我北美哥, 难听死了= =。 这题都一样的。 论坛回复不好解释啊, 要画图。 别说4*n了, m*n都行。

简单来说就是每一列看做一个二进制, D(i,j)表示第i列状态为j(转化为十进制后)能有多少方案, D[i,j] = 累加D[i - 1, k], 其中j和k必须兼容, 你得用dfs做好预处理。
回复 支持 反对

使用道具 举报

 楼主| gnijuohz 发表于 2014-3-5 01:37:07 | 显示全部楼层
北美农民 发表于 2014-3-3 11:22
别喊我北美哥, 难听死了= =。 这题都一样的。 论坛回复不好解释啊, 要画图。 别说4*n了, m*n都行。

...

Alright, so the idea is swapping N with 4 and using DP? I'll try.

Do you have a blog or something? I think I could learn a lot :)
回复 支持 反对

使用道具 举报

北美农民 发表于 2014-3-5 01:44:26 | 显示全部楼层
gnijuohz 发表于 2014-3-4 12:37
Alright, so the idea is swapping N with 4 and using DP? I'll try.

Do you have a blog or somethi ...

我也是新人, 没有blog这些。

这题因为基本unit是1*3或者3*1, 你要仔细想好怎么横着放怎么显示, 竖着放怎么显示, 状态转移怎么来。
但是anyway, 方法是general的
回复 支持 反对

使用道具 举报

本版积分规则

请点这里访问我们的新网站:一亩三分地Instant.

Instant搜索更强大,不扣积分,内容组织的更好更整洁!目前仍在beta版本,努力完善中!反馈请点这里

关闭

一亩三分地推荐上一条 /5 下一条

手机版|小黑屋|一亩三分地论坛声明 ( 沪ICP备11015994号 )

custom counter

GMT+8, 2016-12-3 08:38

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

快速回复 返回顶部 返回列表