def optimize_tour(days, times, scores):
n = len(times)
dp = [[0] * (days + 1) for _ in range(n + 1)]
for i in range(1, n + 1):
for j in range(1, days + 1):
if times[i - 1] <= j:
dp[i][j] = max(dp[i-1][j], dp[i-1][j-times[i-1]] + scores[i-1])
else:
dp[i][j] = dp[i-1][j]
return dp[n][days]
def main():
days = 4
times = [1, 2, 3, 1]
scores = [7, 8, 9, 6]
result = optimize_tour(days, times, scores)
print(f"最大价值为: {result}")
if __name__ == "__main__":
main()