if __name__ == "__main__": n, m = map(int, input().split()) nums = list(map(int, input().split())) acc_sum = [0] for item in nums: acc_sum.append(acc_sum[-1] + item) dp = [[float("inf")] * (1 + len(nums)) for _ in range(m + 1)] dp[0][0] = 0 for i in range(1, m + 1): for j in range(1, len(nums) + 1): for k in reversed(range(i - 1, j)): val = max(dp[i - 1][k], acc_sum[j] - acc_sum[k]) dp[i][j] = min(val, dp[i][j]) print(dp[m][len(nums)])
点赞 3

相关推荐

牛客网
牛客企业服务