【洛谷p2430】严酷的训练

(这个题有一个很神奇的地方)

严酷的训练【传送门】

算法标签(显然01背包了最近一直在练)

(他居然没写……)


这个题啊,试了好几遍没a

最后发现在第二层循环的时候应该是j>=rqyt[p[i]]而不是j>=rqyt[i](因为时间t要大于的是做这个题所需要的时间)(在下面循环想到上面没想到)

ac代码:

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<string>
#include<cmath>
using namespace std;
int rqy,zyx;
int m,n;
int rqyt[50001],p[100000],q[100000];
int t;
int f[1000001];
int main()
{
    cin>>rqy>>zyx;
    int a=zyx/rqy;
    cin>>m>>n;
    for(int i=1;i<=n;i++)
    {cin>>rqyt[i];
        rqyt[i]*=a;}
    for(int i=1;i<=m;i++)
    cin>>p[i]>>q[i];
    cin>>t;
    for(int i=1;i<=m;i++)
    {
        for(int j=t;j>=rqyt[p[i]];j--)
        {
            f[j]=max(f[j],f[j-rqyt[p[i]]]+q[i]);
        }
    }
    cout<<f[t];
}

懒得写注释了你们自己理解吧

致敬rqyzyx两个钢铁直男

end-

猜你喜欢

转载自www.cnblogs.com/zhuier-xquan/p/10506444.html
今日推荐