hdoj 2159 (带限制的完全背包)
Posted seek you
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hdoj 2159 (带限制的完全背包)相关的知识,希望对你有一定的参考价值。
#include <iostream> #include <algorithm> #include <cstring> using namespace std; int dp[110][110]; int n,m,k,s; int w[110]; int val[110]; int main () { ios::sync_with_stdio(false); while (cin>>n>>m>>k>>s) { for (int i=1;i<=k;i++) cin>>val[i]>>w[i]; memset (dp,0,sizeof(dp)); for (int i=1;i<=k;i++) for (int j=w[i];j<=m;j++) for (int t=1;t<=s;t++) dp[j][t]=max (dp[j][t],dp[j-w[i]][t-1]+val[i]); int i; for (i=1;i<=m;i++) if (dp[i][s]>=n) break; if (i>m) cout<<"-1\n"; else cout<<m-i<<"\n"; } return 0; }
以上是关于hdoj 2159 (带限制的完全背包)的主要内容,如果未能解决你的问题,请参考以下文章