zoukankan      html  css  js  c++  java
  • 洛谷:P1757 通天之分组背包

    //P1757
    #include <iostream>
    #define max(a,b) ((a)<(b)?(b):(a))
    using namespace std;
    int maxcls,V,n,clsnum[1005],is[1005][1005];
    int d[1000];
    class item{public:
        int vol,val;
    }input[1000];

    int main(){
        int i,j,a,b,c,xx,yy;
        cin>>V>>n;
        for(i=1;i<=n;i++){
            cin>>a>>b>>c;
            input[i].vol=a;
            input[i].val=b;
            maxcls=max(maxcls,c);//总组数
            clsnum[c]++;//某组数
            is[c][clsnum[c]]=i;

        }
        for(yy=1;yy<=maxcls;yy++){
            for(xx=V;xx>=0;xx--){
                for(int ti=1;ti<=clsnum[yy];ti++){
                    if(xx>=input[is[yy][ti]].vol)
                    d[xx]=max(d[xx],
                        d[xx-input[is[yy][ti]].vol]+input[is[yy][ti]].val);
                }
            }
        }
        cout<<d[V]<<endl;
        return 0;
    }
    https://www.luogu.com.cn/problem/P1757
  • 相关阅读:
    HDU.2899.Strange fuction(牛顿迭代)
    BZOJ.3771.Triple(母函数 FFT 容斥)
    树的实现(2)
    树的练习
    死锁问题
    进程的三种状态
    线程的同步与实现
    进程间通信详解
    进程和线程以及它们的区别
    https协议
  • 原文地址:https://www.cnblogs.com/forwhat00/p/13226958.html
Copyright © 2011-2022 走看看