【每日DP】day1 P1802 5倍经验日(别样的01背包)难度⭐★

题目链接

输入

6 8
21 52 1
21 70 5
21 48 2
14 38 3
14 36 1
14 36 2

输出

1060

一道有点意思的01背包,可以帮助理解。好久没写DP了,每天一道DP,从基础学起,正好复习一下。
这道题不同之处在于失败了(不拿走这件东西)也会有收益,所以就在正常的倒序一维01背包的基础之上,如果背包容量小于当前的物品的重量,也要加上 l o s e [ i ] lose[i] lose[i],以及别忘了题中的五倍经验。

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll N=1e4+7;
const ll mod=2147483647;
ll n,m,a[N],b[N],c[N],f[N],maxx;
int main()
{
    scanf("%lld %lld",&n,&m);
    for(int i=1;i<=n;++i)
        scanf("%lld %lld %lld",&a[i],&b[i],&c[i]);
    for(int i=1;i<=n;++i)
    {
        for(int j=m;j>=c[i];--j)
        {
            f[j]=max(f[j]+a[i]*5,f[j-c[i]]+b[i]*5);
        }
        for(int j=c[i]-1;j>=0;--j)
        {
            f[j]+=a[i]*5;
        }
    }
    printf("%lld\n",f[m]);
    return 0;
}

有任何疑问欢迎评论哦虽然我真的很菜

全部评论

相关推荐

不愿透露姓名的神秘牛友
昨天 17:02
鼠鼠深知pdd的强度很大,但是现在没有大厂offer,只有一些不知名小厂我是拒绝等秋招呢,还是接下?求大家帮忙判断一下!
水中水之下水道的鼠鼠:接了再说,不图转正的话混个实习经历也不错
投递拼多多集团-PDD等公司10个岗位 >
点赞 评论 收藏
分享
点赞 评论 收藏
分享
Ncsbbss:又想干活又想要工资,怎么什么好事都让你占了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务