Run ID | 作者 | 问题 | 语言 | 测评结果 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|
4003 | huangyunkai | 0-1背包问题(回溯法) | C++ | 无测评数据 | 0 MS | 0 KB | 524 | 2023-01-11 15:10:32 |
#include<bits/stdc++.h> using namespace std; int n,v,c[60],ans=0; bool f[60][20010]; int main(){ cin>>n>>v; for(int i=1;i<=n;i++){ cin>>c[i]; } memset(f,0,sizeof(f)); f[0][0]=true; for(int i=1;i<=n;i++){ memcpy(f[i],f[i-1],sizeof(f[i])); for(int j=c[i];j<=v;j++){ f[i][j]|=f[i-1][j-c[i]]; } } for(int i=v;i>=0;--i){ if(f[n][i]){ ans=v-i; break; } } cout<<ans; return 0; }