• P1064 金明的预算方案


    题见洛谷

    由于依赖少 , 可以改为分组背包

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<string> 
    #include<algorithm>
    using namespace std;
    int v[210],c[210],n,m,wj[210][3],wpv[210],wpc[210]; 
    int f[32000+10];bool p[210];
    int main()
    {
        scanf("%d%d",&n,&m);
    
        for(int i=1;i<=m;i++){
            int vv,pp,qq;
            scanf("%d%d%d",&vv,&pp,&qq);
            v[i]=vv;c[i]=vv*pp;
            if(qq==0) p[i]=true;
            else   wj[qq][++wj[qq][0]]=i,p[qq]=true;//wj[qq][++wj[!  qq   !][0]]=i
        }
        int cnt=0,x=1;
        for(int i=1;i<=m;i++)
        {
           if(p[i])        
           {
            wpv[++cnt]=v[wj[i][1]]+v[i],wpc[cnt]=c[wj[i][1]]+c[i];
            wpv[++cnt]=v[wj[i][2]]+v[i],wpc[cnt]=c[wj[i][2]]+c[i];
            wpv[++cnt]=v[wj[i][1]]+v[wj[i][2]]+v[i],wpc[cnt]=c[wj[i][1]]+c[wj[i][2]]+c[i];
            wpv[++cnt]=v[i],wpc[cnt]=c[i];
           }
        }//将依赖背包拆成分组背包 
    
        for(int i=1;i<=cnt;i=i+4)
        {
            for(int j=n;j>=0;j--)
             for(int k=0;k<=3;k++)
              if(j>=wpv[i+k])
               f[j]=max(f[j],f[j-wpv[i+k]]+wpc[i+k]);
        }
    
    //注释起的为第二种写法
    /* 
        for(int i=1;i<=m;i++)
        {
            if(p[i])
            {
                for(int j=n;j>=0;j--)
                {
    
                        int x1=v[i],x2=v[wj[i][1]]+v[i],x3=v[i]+v[wj[i][2]],x4=v[i]+v[wj[i][1]]+v[wj[i][2]];
    
                        if(j>=x1) f[j]=max(f[j],f[j-x1]+c[i]);
                        if(j>=x2) f[j]=max(f[j],f[j-x2]+c[i]+c[wj[i][1]]);
                        if(j>=x3) f[j]=max(f[j],f[j-x3]+c[i]+c[wj[i][2]]);
                        if(j>=x4) f[j]=max(f[j],f[j-x4]+c[i]+c[wj[i][1]]+c[wj[i][2]]);
    
                }
            }
        }*/ 
        printf("%d",f[n]);  
        return 0;
    }
  • 相关阅读:
    流量分析 (WireShark)
    WEB小技俩
    PHP伪协议
    php弱类型基础
    宽字节注入
    布尔盲注
    时间盲注
    Odoo13教程-Odoo快捷键使用_江苏欧度软件
    Odoo,快速上手Odoo,来了解Odoo几个标准模块
    开源Odoo13更新的模块功能信息(译文)
  • 原文地址:https://www.cnblogs.com/dfsac/p/6819772.html
Copyright © 2020-2023  润新知