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)
感觉自己对板子的变形不是很熟练 》.《
背包问题应该算我比较熟的板子了 还是在坑上摔死了
这道题如果药不够了就会一直输,要记得还有这种情况
推荐阅读