编辑代码

#include <iostream>
#include <vector>

using namespace std;

// 旅游行程最优化算法
int maxScore(const vector<int>& time, const vector<int>& score, int days) {
    int n = time.size();
    vector<vector<int> > dp(n + 1, vector<int>(days + 1, 0));

    for (int i = 1; i <= n; ++i) {
        for (int j = 1; j <= days; ++j) {
            if (j >= time[i - 1]) {
                dp[i][j] = max(dp[i - 1][j], dp[i - 1][j - time[i - 1]] + score[i - 1]);
            } else {
                dp[i][j] = dp[i - 1][j];
            }
        }
    }

    return dp[n][days];
}

int main() {
    // 初始化景点数据
    int timeArr[] = {1, 2, 3, 1};
    int scoreArr[] = {7, 8, 9, 6};
    vector<int> time(timeArr, timeArr + sizeof(timeArr) / sizeof(timeArr[0]));
    vector<int> score(scoreArr, scoreArr + sizeof(scoreArr) / sizeof(scoreArr[0]));
    int days = 4;

    // 调用旅游行程最优化算法
    int result = maxScore(time, score, days);

    // 输出结果
    cout << "最大评分为: " << result << endl;

    return 0;
}