Charm Bracelet

题目:Charm Bracelet


思路:裸的01背包……要用滚动数组。


代码:

#include<bits/stdc++.h>  
using namespace std;  
  
#define maxn 3500  
#define maxm 12880  
  
int m,n;  
int w[maxn+5],c[maxn+5];  
int f[maxm+5]={0};  
  
int main(){  
    scanf("%d%d",&n,&m);  
    for(int i=1;i<=n;i++){  
        scanf("%d%d",&w[i],&c[i]);  
        for(int j=m;j>=0;j--){  
            if(j-w[i]>=0) f[j]=max(f[j],f[j-w[i]]+c[i]);  
        }  
    }  
    printf("%d\n",f[m]);  
      
    return 0;  
}

猜你喜欢

转载自blog.csdn.net/rabbit_zar/article/details/80287372