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

调试Google KickStart 2022 Round D Maximum Gain问题DP代码错误

问题描述

我在使用动态规划方法求解**Google KickStart 2022 Round D - 最大收益问题(Maximum Gain Problem)**时,反复调试代码始终无法得到正确结果,耗费了大量精力。
题目链接:Maximum Gain Problem
我编写的Python代码如下:

# 辅助函数
def proceedForOneOnly(O, k, gainOne):
    if k==0:
        return 0
    return gainOne + max([proceedForOneOnly(O[1:], k-1, O[0]), proceedForOneOnly(O[:-1], k-1, O[-1])])

# 核心求解函数
def maxGain(A, B, k, gain):
    # 边界条件
    if k==0:
        return 0
    # 检查两个任务数组是否为空
    if len(B)==0:
        return proceedForOneOnly(A, k-1, gain)
    elif len(A)==0:
        return proceedForOneOnly(B, k-1, gain)
    # 两个数组均非空的分支
    return gain + max([maxGain(A[1:], B, k-1, A[0]), maxGain(A[:-1], B, k-1, A[-1]), maxGain(A, B[1:], k-1, B[0]), maxGain(A, B[:-1], k-1, B[-1])])

# 读取输入并迭代调用求解函数
def main():
    n = int(input())
    for i in range(n):
        nA = int(input()); A = list(map((lambda i: int(i)), input().split()))
        nB = int(input()); B = list(map((lambda i: int(i)), input().split()))
        k  = int(input())
        print(f"Case #{1}: {maxGain(A, B, k, 0)}")

main()
运行异常表现

当前代码在如下给出的前两个测试用例上运行,输出结果为22(正确预期应为24)、138(正确预期应为148),结果存在偏差:

2
3
3 1 2
4
2 8 1 9
5
4
1 100 4 3
6
15 10 12 5 1 10
6

恳请各位帮忙定位代码中存在的问题。


内容的提问来源于stack exchange,提问作者Syed M Abbas Haider Taqvi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 05:24:28