铺放矩形块

来源:百度知道 编辑:UC知道 时间:2024/05/28 07:30:03
题三 铺放矩形块(100分)
给定4个矩形块,找出一个最小的封闭矩形将这4个矩形块放入,但不得相互重叠。所谓最小矩形指该矩形面积最小。
所有4个矩形块的边都与封闭矩形的边相平行,图1示出了铺放4个矩形块的6种方案。这6种方案仅只是可能的基本铺放方案。因为其它方案能由基本方案通过旋转和镜像反射得到。

可能存在满足条件且有着同样面积的各种不同的封闭矩形, 你应该输出所有这些封闭矩形的边长。
输入数据:输入文件INPUT.TXT共有4行。每一行用两个正整数来表示一个给定的矩形块的两个边长。矩形块的每条边的边长范围最小是1,最大是50。
输出数据:输出文件OUTPUT-x.TXT的总行数为解的总数加1。第一行是一个整数, 代表封闭矩形的最小面积(子任务A)。接下来的每一行都表示一个解,由数P和数Q来表示,并且P≤Q(子任务B)。这些行必须根据P的大小按升序排列,P小的行在前,大的在后。且所有行都应是不同的。
输入输出举例:
图2给出了输入输出文件的示例。

┌—————————┐ ┌—————————┐
│ INPUT.TXT │ │ OUTPUT21.TXT │
├—————————┤ ├—————————┤
│ 1 2 │ │ 40 │
│ 2 3 │ │ 4 10 │
│ 3 4 │ │ 5 8 │
│ 4 5 │ │ │
└—————————┘ └—————————┘

你可以搜索所有可能成功铺盖的情形,来确定这些可能成功中的所有组合中的最小面积。什么成功情形?
设有1-4矩形,那么让它们重新组成一个矩形只能有三种情况可以。
1.1,2有一边相等3,4有一边相等,而且,1,2各另一边之和等于3,4个另一边之和。
2.3,4有一边相等,而且各另一边之和等于2的一边,然后3,4相等的一边与2的另一边之和等于1的一边
3.2,3,4有一边相等,它们另一边之和等于1的一边。
按着三条规则,根据INPUT.txt的输入来求出所有可能的情形,计算所有情形组成的面积,看哪几个最小,输出即可。