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 (带限制的完全背包)的主要内容,如果未能解决你的问题,请参考以下文章

HDU 2159---FATE---带限制的完全背包

HDU2159_二维完全背包问题

HDU-2159

hdu2159完全背包

HDU2159(二维完全背包)

HDU2159 二维完全背包