01背包 40分求助~
查看原帖
01背包 40分求助~
705506
BESTPLAYER楼主2023/2/4 17:45
#include <iostream>
#include <vector>
using namespace std;
int enemy, have;
struct note {int lose, win, use;};
int main()
{
    cin >> enemy >> have;
    vector<note> info(enemy);
    for(int i = 0; i < enemy; i++)
        cin >> info[i].lose >> info[i].win >> info[i].use;
    vector<long long> dp(have + 1, 0);
    for(int i = 1; i <= enemy; i++)
    {
        for(int j = have; j >= 0; j--)
        {
            dp[j] += info[i - 1].lose;
            if(j >= info[i - 1].use)
                dp[j] = max(dp[j], info[i - 1].win + dp[j - info[i - 1].use]);
        }
    }
    cout << dp[have] * 5;
    return 0;
}
2023/2/4 17:45
加载中...