首页 > 其他 > 详细

P2430严酷的训练

时间:2019-03-10 21:09:09      阅读:138      评论:0      收藏:0      [点我收藏+]

传送

这个题的题干很长,长到令人恶心

这个题的p乍一看好像没有卵用,但其实他很有用(废话)。这里的“费用”不再是tw[i](wky做第i道题的时间),而是tw[p[i]](wky做第i道题所对应的知识点的时间),跳过这个坑后就套用经典的01背包代码就行了

代码如下:

#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;
int tw[50001],spw,splw,m,n,f[500001],tl[5001],p[5001],q[50001],t;//这里我们也可以很皮的用rqy和lz
int main()
{
    scanf("%d %d",&spw,&splw);
    scanf("%d %d",&m,&n);
    for(int i=1;i<=n;i++)
    {scanf("%d",&tl[i]);
    tw[i]=(splw/spw)*tl[i];
    }
    for(int i=1;i<=m;i++)
    cin>>p[i]>>q[i];
    scanf("%d",&t);
    for(int i=1;i<=m;i++)
    {
        for(int j=t;j>=tw[p[i]];j--)
        {f[j]=max(f[j],f[j-tw[p[i]]]+q[i]);
        }
    }
    printf("%d",f[t]);
}

 

P2430严酷的训练

原文:https://www.cnblogs.com/lcez56jsy/p/10506872.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!