【发布时间】:2011-07-19 06:30:38
【问题描述】:
IOI 95
四个矩形的六种基本布局
给出了四个矩形。找到最小的封闭(新)矩形,这四个可以不重叠地拟合。最小的矩形是指面积最小的矩形。
所有四个矩形的边都应该与封闭矩形的对应边平行。图 1 显示了将四个矩形组合在一起的六种方法。这六个是唯一可能的基本布局,因为任何其他布局都可以通过旋转或反射从基本布局获得。矩形在打包过程中可以旋转 90 度。
可能存在满足要求的几个不同的封闭矩形,它们都具有相同的面积。您必须生成所有此类封闭矩形。
输入格式
四行,每行包含两个以空格分隔的正整数,表示矩形两侧的长度。矩形的每条边至少为 1,最多为 50。输出格式
输出文件比解决方案的数量多一行。第一行包含一个整数:包围矩形的最小面积。以下每一行都包含一个由两个数字 p 和 q 描述的解决方案,其中 p
这就是问题陈述。我发现我想针对所有这些基本布局尝试所有 24*16 位置(您可以将矩形旋转 90 度)并检查新区域,但是我不知道如何实现这一点。从一些伪代码到文章链接的任何内容都会有很大帮助。提前致谢。
【问题讨论】:
-
不是,事实上我还在上高中,他们现在正在那里教循环。
-
忽略了IOI的备注,抱歉。
-
尝试谷歌搜索“受限二维切割算法”。我不确定是否真的只有 24*16 组合。 (尽管您的问题并不完全是通常固定库存的经典切割问题)
-
排列数:4!,旋转数:2^4
-
我不知道你可以在这里使用线性排列。例如。看看你的右图:如果右上方的块稍微小一点,你可以把它挤在另外两个之间的空隙里。也就是说,我认为线性顺序和二维排列之间没有 1:1 的映射关系。
标签: algorithm