编辑代码

def max_score(spots, days, scores, total_days):
    # 初始化 dp 数组
    dp = [[0] * (total_days + 1) for _ in range(len(spots) + 1)]

    # 填充 dp 数组
    for i in range(1, len(spots) + 1):
        for j in range(1, total_days + 1):
            if days[i-1] <= j:
                dp[i][j] = max(dp[i-1][j], dp[i-1][j-days[i-1]] + scores[i-1])
            else:
                dp[i][j] = dp[i-1][j]
    
    return dp[len(spots)][total_days]

# 景点名称
spots = ["故宫", "颐和园", "长城", "天坛"]
# 每个景点所需时间
days = [1, 2, 3, 1]
# 每个景点的评分
scores = [7, 8, 9, 6]

# 总共的旅游时间
total_days = 4

# 调用函数得出最大评分
max_value = max_score(spots, days, scores, total_days)
print("在总时间为4天的情况下,能够获得的最大评分为:", max_value)