蒟蒻01背包没学好(悲
只会恰好
#include<bits/stdc++.h>
using namespace std ;
int n,k ;
int cost[102] ;
int weight[102] ;
int f[102][10003] ;
int main() {
scanf("%d%d",&n,&k) ;
for(int i=1 ;i<=n ;i++) {
scanf("%d",&cost[i]) ;
weight[i]=cost[i] ;
}
for(int i=1;i<=n;i++) {
for(int j=0;j<=k;j++) {
if(j>=cost[i])f[i][j]=max(f[i][j],f[i-1][j-cost[i]]+weight[i]) ;
f[i][j]=max(f[i][j],f[i-1][j]) ;
}
}
printf("%d",f[k][n]) ;
return 0 ;
}
Link
求大佬改进