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;
}
posted @ 2019-10-10 21:37  nenT  阅读(106)  评论(0)    收藏  举报