编辑代码

def knapsack(max_capacity, weights, values):
    """
    解决背包问题的动态规划实现。
    
    :param max_capacity: 背包的最大容量
    :param weights: 豆子的重量列表
    :param values: 豆子的价值列表
    :return: 可以达到的最大价值
    """
    n = len(values)
    # 创建一个动态规划表
    dp = [[0 for _ in range(max_capacity + 1)] for _ in range(n + 1)]

    # 填充表格
    for i in range(1, n + 1):
        for w in range(1, max_capacity + 1):
            if weights[i-1] <= w:
                # 如果当前豆子可以放入背包,决定是否放入
                dp[i][w] = max(dp[i-1][w], dp[i-1][w-weights[i-1]] + values[i-1])
            else:
                # 否则不放入当前豆子
                dp[i][w] = dp[i-1][w]

    return dp[n][max_capacity]

# 示例数据
max_capacity = 50  # 背包的最大容量
weights = [10, 20, 30]  # 豆子的重量
values = [60, 100, 120]  # 豆子的价值

# 调用函数并输出结果
knapsack(max_capacity, weights, values)