hdu 2111 多重背包

来源:互联网 发布:java开发的硬件环境 编辑:程序博客网 时间:2024/06/09 16:40

http://acm.hdu.edu.cn/showproblem.php?pid=2111


#include<cstdio>#include<cstring>#include<iostream>using namespace std;int dp[105];int main(){    int v,n;    while(scanf("%d",&v)!=EOF,v)    {        scanf("%d",&n);        int p,m;        memset(dp,0,sizeof(dp));        for(int i=1;i<=n;i++)        {            scanf("%d%d",&p,&m);            for(int k=1;k<=m;k++)//加个数量的循环            for(int j=v;j>=1;j--)            {                dp[j]=max(dp[j],dp[j-1]+p);            }        }        cout<<dp[v]<<endl;    }}