Usaco Training Section 6.2Packing Rectangles

Packing Rectangles 铺放矩形块
IOI 95
给定4 个矩形块,找出一个最小的封闭矩形将这4 个矩形块放入,但不得相互重叠.所谓最小矩形指
该矩形面积最小.
所有4 个矩形块的边都与封闭矩形的边相平行,图1 示出了铺放4 个矩形块的6 种方案.这6 种方案
仅只是可能的基本铺放方案.因为其它方案能由基本方案通过旋转和镜像反射得到.
可能存在满足条件且有着同样面积的各种不同的封闭矩形,你应该输出所有这些封闭矩形的边长.

PROGRAM NAME: packrec
INPUT FORMAT
共有4 行.每一行用两个正整数来表示一个给定的矩形块的两个边长.矩形块的每条边的边长范围
最小是1,最大是50.
SAMPLE INPUT (file packrec.in)
1 2
2 3
3 4
4 5
OUTPUT FORMAT
总行数为解的总数加1.第一行是一个整数,代表封闭矩形的最小面积(子任务A).接下来的每一行
都表示一个解,由数P 和数Q 来表示,并且P≤Q(子任务B).这些行必须根据P 的大小按升序排列,P
小的行在前,大的在后.且所有行都应是不同的.
SAMPLE OUTPUT (file packrec.out)
40
4 10
5 8

分析:思路很明确,分6种情况讨论,其实4和5是等价的。主要是第6种太烦了。我们来摘一段题解:

/*
     * schema 6: first two pressed next to each other, next two on top, like: 
     * 2 3
     * 0 1
     */
    big.ht = max(r[0].ht+r[2].ht, r[1].ht+r
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值