zoukankan      html  css  js  c++  java
  • luogu P1417 烹调方案

    稍微改了一点的01背包,选择的顺序会影响物品的价值,数学公式推一下可以得出cmp函数:

    bool cmp(node x,node y)
    {
        return x.c*y.b<y.c*x.b;
    }

    排序后跑一遍01就行

    #include<cstdio>
    #include<algorithm>
    #define maxn 60
    #define ll long long
    using namespace std;
    ll T,n,a[maxn],b[maxn],c[maxn];
    struct node
    {
        ll a,b,c;
    }que[maxn];
    bool cmp(node x,node y)
    {
        return x.c*y.b<y.c*x.b;
    }
    ll dp[100010];
    int main()
    {
        scanf("%lld%lld",&T,&n);
        for(int i=1;i<=n;i++)
            scanf("%lld",&que[i].a);
        for(int i=1;i<=n;i++)
            scanf("%lld",&que[i].b);
        for(int i=1;i<=n;i++)
            scanf("%lld",&que[i].c);
        sort(que+1,que+n+1,cmp);
        dp[0]=0;
        for(ll i=1;i<=n;i++)
            for(ll j=T;j>=0;j--)
            {
                if(j>=que[i].c)
                    dp[j]=max(dp[j],dp[j-que[i].c]+que[i].a-j*que[i].b);
            }
        ll ans=-32513425;
        for(int i=1;i<=T;i++)
            ans=max(ans,dp[i]);
        printf("%lld",ans);
        return 0;
    }
  • 相关阅读:
    android 加入关屏
    网址导航收集
    OpenStack 中文社区
    Truncate 删除数据
    c# 实体类生成工具
    .net 关系
    html中,播放 flash
    Axis2.0+WebService的使用
    xfire java web服务器引擎
    修复 google paly
  • 原文地址:https://www.cnblogs.com/charlesss/p/10715684.html
Copyright © 2011-2022 走看看