zoukankan      html  css  js  c++  java
  • 【多重背包】CDOJ1691 这是一道比CCCC简单题经典的中档题

    #include<cstdio>
    #include<algorithm>
    using namespace std;
    int n,V,w[110],c[110],a[110],f[50010];
    int main(){
    	scanf("%d%d",&n,&V);
    	for(int i=1;i<=n;++i){
    		scanf("%d%d%d",&w[i],&c[i],&a[i]);
    	}
    	for(int i=1;i<=n;++i){
    		int cnt=0;
    		int j=1;
    		for(;;j<<=1){
    			cnt+=j;
    			if(cnt>a[i]){
    				break;
    			}
    		 	for(int v=V;v>=w[i]*j;--v){
    				f[v]=max(f[v],f[v-w[i]*j]+c[i]*j);
    			}
    		}
    		j=a[i]-(cnt-j);
    		for(int v=V;v>=w[i]*j;--v){
    			f[v]=max(f[v],f[v-w[i]*j]+c[i]*j);
    		}
    	}
    	printf("%d
    ",f[V]);
    	return 0;
    }
  • 相关阅读:
    扯一扯纯函数
    10.28
    10.27 动手动脑5
    10.26
    10.25 周总结
    10.23
    10.22
    10.21 动手动脑4
    10.20
    10.19
  • 原文地址:https://www.cnblogs.com/autsky-jadek/p/6935141.html
Copyright © 2011-2022 走看看