查看: 1780| 回复: 5
跳转到指定楼层
上一主题 下一主题
收起左侧

tiling算法題求解

全局:

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

您需要 登录 才可以下载或查看附件。没有帐号?注册账号

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。周末准备参加学校里的一个编程小比赛,这是去年的一题。目前依旧没思路~

上一篇:求教一个bit的算法题?
下一篇:平衡数
🔗
北美农民 2014-3-4 02:02:26 | 只看该作者
全局:
状态压缩动态规划吧。  铺瓷砖是经典应用了, 可以搜一下很多类似的
回复

使用道具 举报

🔗
 楼主| gnijuohz 2014-3-4 02:08:59 | 只看该作者
全局:
北美农民 发表于 2014-3-3 11:02
状态压缩动态规划吧。  铺瓷砖是经典应用了, 可以搜一下很多类似的

是的,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做好预处理。

点评

最后求的结果是D[n, 2^4 - 1]因为最后一列一定都是1  发表于 2014-3-4 02:24
回复

使用道具 举报

🔗
 楼主| 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的
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

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