【发布时间】:2015-04-21 18:06:26
【问题描述】:
这是来自代码竞赛的问题,我发现想出任何可行的算法来解决它非常困难。所以我不是真的在寻找代码,而是在寻找如何解决它的逐步算法。
堆叠瓷砖
靠墙堆放瓷砖是 Bongani 最喜欢的消遣活动之一。他的瓷砖都具有相同的厚度,但各不相同 在宽度和高度。 Bongani 有 N 个瓷砖,必须在 根据一组规则给出的序列。他可以在上面放一块瓷砖 仅当它比先前堆叠的更窄时才在另一个顶部 瓦。 Bongani 可以将瓷砖旋转 90 度,以便 宽度变成高度,高度变成宽度。他也被允许 完全丢弃瓷砖。给定一个瓷砖列表,帮助 Bongani 找到 他可以建立的最高堆栈 该示例指定瓷砖 (3, 3), (12, 5), (5, 8), (6, 10)。为了获得最高的筹码,Bongani 忽略了 第一个图块 (3, 3),因为它小于下一个图块。他使用 下一个瓦片 (12, 5),宽度为 12,高度为 5。他用 接下来的两个瓷砖,宽度为 8,高度为 5,然后 宽度为 6,高度为 10。
我唯一能想到的就是获取所有可能的有效图块排列并找到最高排列。 确切的问题可以在这里找到http://www.olympiad.org.za/olympiad/wp-content/uploads/2013/01/2011PO-R2-Questions-0421.pdf(问题5)
【问题讨论】:
-
你明白我的回答了吗,还是我应该澄清什么?
标签: java algorithm sorting graph permutation