Algorithm 如何应用动态规划法寻找现场建造塔楼的最低成本

Algorithm 如何应用动态规划法寻找现场建造塔楼的最低成本,algorithm,dynamic-programming,Algorithm,Dynamic Programming,您将获得一个nxm矩形字段,其左下角点位于原点。你必须在田野里建造一座方形底座的塔。田地里有很多树,要把它们连根拔起需要付出相应的代价。因此,你必须尽可能减少被连根拔起的树木数量,以尽可能降低建造这座塔的成本 输入示例: N = 4 M = 3 Lenght of side of Tower = 1 Number of Trees in the field = 4 1 3 5 3 3 4 2 2 1 2 1 2 输入中的4行是树的坐标,拔除成本为第三个整数 与塔架边

您将获得一个
nxm
矩形字段,其左下角点位于原点。你必须在田野里建造一座方形底座的塔。田地里有很多树,要把它们连根拔起需要付出相应的代价。因此,你必须尽可能减少被连根拔起的树木数量,以尽可能降低建造这座塔的成本

输入示例:

N = 4 
M = 3 
Lenght of side of Tower = 1 
Number of Trees in the field = 4  

1 3 5  
3 3 4  
2 2 1  
2 1 2  
输入中的4行是树的坐标,拔除成本为第三个整数

与塔架边缘重合的树木被视为放置在塔架内部,也必须连根拔起

我在为这个问题建立动态规划关系时遇到了一个问题


谢谢

听起来你的问题可以归结为:找到一个和最小的MxN矩阵的KxK子块。通过使用积分变换,可以有效地解决此问题(与输入的大小成比例)。当然,这不一定能帮助您解决动态规划问题——我不确定这个解决方案是否等同于任何动态规划公式


无论如何,对于原始矩阵
M
的每个索引对
(a,b)
,计算一个“积分变换”矩阵
I[a,b]=sum[I你对M和N有界吗?塔的大小如何?提到了合理的界。2≤N、 M≤ 1000成本函数是什么?案例A:10sq塔和5棵树成本与案例B:11sq塔和6棵树成本相比。哪一个是最优的?塔的尺寸固定为边的长度。我们只需最小化切割树的成本。可以用子块解决方案解决,但条件是“与塔楼边缘重合的树木被视为放置在塔楼内部,也必须将其连根拔起“稍微复杂一点。我已经投票了,但是你也需要解决这个问题的一部分。这不是一个边界条件吗?无论如何,我将增加一个关于原始问题的细节的部分。不,它不是。考虑一个3x3矩阵(从1-3索引)。在中心(2x2)上创建一个长度为1的正方形。您需要清除以下五个正方形:(2,2),(2,1),(2,3),(1,2),(3,2)。这意味着子解不完全是矩形。那么(1,1),(1,3),(3,3)和(3,1)呢?我不会将OQ解释为专门排除拐角情况8^)——但如果您确实想排除它们,您可以在最后一关中跟踪并减去它们。