欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

P1802 5倍经验日(01背包变形)

程序员文章站 2024-03-17 13:33:58
...

#include<bits/stdc++.h>
using namespace std;
const int maxn = 1e3+10;

int shu[maxn],ying[maxn],w[maxn];
long long dp[maxn];
int main(){
    int n,x;  //x是药物数量,n是n个人
    scanf("%d%d",&n,&x);
    for(int i = 1;i<=n;i++)
        scanf("%d%d%d",&shu[i],&ying[i],&w[i]);
    for(int i = 1;i<=n;i++)
        for(int j = x;j>=0;j--)
            if(j>=w[i])
                dp[j] = max(dp[j]+shu[i],dp[j-w[i]]+ying[i]);
            else
                dp[j]=dp[j]+shu[i];
    printf("%lld",5*dp[x]);
}

P1802 5倍经验日 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

感觉自己对板子的变形不是很熟练 》.《

背包问题应该算我比较熟的板子了 还是在坑上摔死了

这道题如果药不够了就会一直输,要记得还有这种情况

相关标签: c++ acm竞赛