题目链接 | 难度等级 | 完成状态 | 完成分数 | 最后编辑时间 | 失误原因(初次提交分数) |
---|---|---|---|---|---|
装箱问题 | ★☆☆☆☆ | 答案正确 | 100 | 2014/11/04 19:48:55 | 算法错误(0) |
经典问题,又称0-1背包问题。
最经典的DP了没什么好说的。第一次一手滑居然交成完全背包。
1014.cpp代码已折叠
展开折叠内容
|
---|
#include<cstdio> #include<algorithm> int v,n,vi[50],Ans; bool u[30000]={1}; int main() { scanf("%d%d",&v,&n); for(int i=1;i<=n;++i) scanf("%d",&vi[i]); for(int i=1;i<=n;++i) for(int j=v;j>=vi[i];--j) { if(u[j-vi[i]]&&!u[j]) { u[j]=1; Ans=std::max(Ans,j); } } printf("%d",v-Ans); return 0; } |