文章

6

粉丝

10

获赞

0

访问

488

头像
采药 题解:
P1086 北京大学机试题
发布于2024年4月20日 22:46
阅读数 85

代码:

#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]);
            }
   ...

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发