【发布时间】:2019-02-24 17:23:57
【问题描述】:
我有一块 MxN 尺寸的矩形板,需要切成 1x1 大小的正方形。这些方格中的每一个都有一些价值,切割成本是切割中涉及的所有方格值的总和。我想找到可能的最低成本。
示例
假设我们有 2x3 棋盘,正方形棋子的值以矩阵形式给出,如下所示:
2 7 5
1 9 5
现在,如果我们首先进行水平切割,成本将为 (2+7+5+1+9+5=29),我们将得到两个较小的反应角板,例如:
2 7 5 和1 9 5
接下来我们切掉 1,9 和 5(成本=1+9+5=15),然后是 2,7 和 5(成本=2+7+5=14)。所以我们有以下板:
2 7、5、1 9、5
在此之后,我们切割 1 和 9(成本=1+9=10),然后切割 2 和 7(成本=2+7=9)。我们还剩下以下正方形:
2、7、5、1、9、5
现在我们将停止,因为所有剩余的部分都只是 1x1。
所以总成本是 77。现在这只是给出最低成本的方法之一。还有其他切割电路板的方法可能会产生相同或更高的成本。
那么,我怎样才能找到最低成本?感谢您的帮助!
【问题讨论】:
-
到目前为止你尝试了什么?
-
你能详细说明切割的工作原理吗?
-
@GiorgosMyrianthous 我知道先在哪里切割,就像因为我们正在取所涉及的平方值的总和,因此我们应该首先分离更大的值,这样它们就不会再次相加,但是我不知道如何在任何给定时间跟踪董事会,例如已经进行了哪些削减以及还有哪些工作要做
-
all the squares involved是指all squares of the current piece of board吗?那是第一次削减总是会花费董事会所有单元格的总和? -
@dangee1705 我已经编辑了这个问题,现在这个例子更清楚了
标签: python arrays python-3.x python-2.7