文章
6
粉丝
10
获赞
0
访问
461
代码:
#include <iostream>
#include <vector>
#include <algorithm> // 用于 std::max
using namespace std;
int main(void) {
int T, M;
while (cin >> T >> M) {
vector<int> time(M), values(M);
for (int i = 0; i < M; i++) {
cin >> time[i] >> values[i];
}
// 使用一个一维数组dp,长度为T+1
vector<int> dp(T + 1, 0);
// 遍历每一个草药
for (int i = 0; i < M; i++) {
// 从大到小遍历所有可能的时间,确保每个草药只被计算一次
for (int j = T; j >= time[i]; j--) {
dp[j] = max(dp[j], dp[j - time[i]] + values[i]);
}
...
登录后发布评论
暂无评论,来抢沙发