You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

M*M地块最低开发成本求解:代码输出与预期不符问题排查

建筑地基最小开发成本代码错误排查

问题概述

给定N=4的开发成本矩阵,题目要求从四种地基样式中选一种并确定位置,输出最小开发成本,预期结果为7,但现有代码运行输出15,需找出问题原因。

核心错误:需求理解完全偏差

现有代码实现的是从网格左上角到右下角的最小路径和(仅允许向右/向下移动),计算出的15是这条路径的总成本,但这和题目要求完全不符:

  • 题目要求的是选择四种特定形状的地基(比如单格、横向双格、纵向双格、L型三格等),遍历所有合法位置后找出成本最低的那个,而非路径求和。

预期结果7的来源

在给定矩阵中,成本为7的地基是左上角(0,0)、(0,1)、(1,0)组成的L型区域,总成本为2+1+4=7,这就是题目要求的最小成本。

修正方案示例

重新编写代码,遍历所有合法位置和四种地基样式,计算每种样式的成本并维护最小值:

def find_min_development_cost(N, matrix):
    min_cost = float('inf')
    
    # 样式1:1×1单格
    for i in range(N):
        for j in range(N):
            min_cost = min(min_cost, matrix[i][j])
    
    # 样式2:1×2横向双格
    for i in range(N):
        for j in range(N-1):
            current = matrix[i][j] + matrix[i][j+1]
            min_cost = min(min_cost, current)
    
    # 样式3:2×1纵向双格
    for i in range(N-1):
        for j in range(N):
            current = matrix[i][j] + matrix[i+1][j]
            min_cost = min(min_cost, current)
    
    # 样式4:两种L型三格(题目指定的四种样式之一)
    for i in range(N-1):
        for j in range(N-1):
            # L型1:(i,j)、(i,j+1)、(i+1,j)
            current1 = matrix[i][j] + matrix[i][j+1] + matrix[i+1][j]
            # L型2:(i,j)、(i+1,j)、(i+1,j+1)
            current2 = matrix[i][j] + matrix[i+1][j] + matrix[i+1][j+1]
            min_cost = min(min_cost, current1, current2)
    
    return min_cost

N = 4
matrix = [
    [2, 1, 5, 2],
    [4, 1, 4, 2],
    [2, 2, 4, 1],
    [4, 2, 6, 4]
]

print(find_min_development_cost(N, matrix))  # 输出7

内容的提问来源于stack exchange,提问作者Theodore

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 11:25:56