luogu#P1060 开心的金明

题意:

有一个背包,总体积为V,给出一个物品 \(i\) 体积为 \(v[i]\) 价值为 \(v[i]*w[i]\) ,求最大价值

解法:

背包dp

#include<iostream>
#include<cstring>
using namespace std;
int main()
{
    int n,m,w[30],v[30],f[50005];
    cin>>n>>m;
    for(int i=1;i<=m;i++)
    {
        int nw;
        cin>>v[i]>>nw;
        w[i]=v[i]*nw;
    }
    
    memset(f,0,sizeof(f));
    for(int i=1;i<=m;i++)
        for(int j=n;j>=v[i];j--)
            f[j]=max(f[j],f[j-v[i]]+w[i]);
            
    cout<<f[n];
    return 0;
}

猜你喜欢

转载自www.cnblogs.com/nenT/p/11650756.html