求问为什么我的E写的也是O(6nk),但是超时呀,毫无思路优化

from math import inf


n, k = list(map(int, input().split(" ")))
a = list(map(int, input().split(" ")))

dp = [[-inf] * (k + 1) for _ in range(n)]
# dp[i][j], 当前在i, 跳了j次的最大余额

for i in range(6):
    dp[i][1] = a[i]

for i in range(n):
    for j in range(k):  # 仅到k - 1
        if not dp[i][j] > -inf:
            continue
        for offset in range(1, 6 + 1):
            if i + offset >= n:
                break
            dp[i + offset][j + 1] = max(dp[i + offset][j + 1], dp[i][j] + a[i + offset])

print(max([dp[i][k] for i in range(n)]))

全部评论
可以试试PyPy3
1 回复 分享
发布于 2025-03-02 23:13 北京

相关推荐

01-30 09:45
燕山大学 Java
喵_coding:这种直接跑就完事了 哪有毕业了才签合同 任何offer和三方都没有的
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务