Packing Rectangles

  这题应该算是chapter 里最难的一题了,个人是看了之后表示一点想法都没有,告诉我是搜索的我都不知道怎么去搜,后面终于下决心要A掉它,网上找了好多的解题报告,看了它们的思路,我个人对它们的正确性是没有疑问,就是为什么这样做就包含了所有的情况呢?后来还是自己独自想通的。大家注意我的分析过程都是分类穷举,因此没有遗漏,不过可能也还有不正确的地方,,希望大家能够指出。

 这里和大家分享一下,希望大家能尽快的形成自己的思路。不要像我一样无限纠结。

网上对这题大部分映像不是很好,个人感觉这题对我们的逻辑思维还是很有挑战性的。

 

大致的思路

 

一、首先确定矩形的位置

 

1.四个并排 

 

 

 

2.下面一个,上面三个(下面三个,上面一个)

 

下面一个和上面三个的组合情况有三种

  • 1-3(图1)
  • 1-2(图2)
  • 1-1(图3,图4)因此3和4本质是一样的。

3.上下各两个

 

 

之所以这里要讨论是因为最小矩形(答案)的宽是受高的限制的。

 

不会做图,就只些分析过程了:

0,1,2,3分别表示从左至右,从上至下的编号。

有四种情况

  • h[3]<h[2]

 1.h[3]+h[1]<=h[2]

 2.h[3]+h[1]>h[2] &&h[1]+h[3]<=h[0]+h[2]

  • h[3]>h[2]

3.h[1]+h[3]<=h[0]+h[2]

4.h[3]>h[0]+h[2]

 

0,1,2,3分别表示从左至右,从上至下的编号

 

 

 

二、每一种位置方式都会有4!种矩形的的摆放

三、每一种摆放再枚举宽高的组合有2^4种


 

实现过程时可以先执行二、三步骤(得到矩形的摆放,以及宽高的组合),再执行步骤一(枚举出现的位置) 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值