01揹包和完全揹包

#include<iostream>
#include<bits/stdc++.h>
using namespace std;
int main()
{
	int v,n,c[50],w[50],f[50];
	memset(f,0,sizeof(f));
	cin>>v>>n;
	for(int i=1;i<=n;i++)
	{
		cin>>c[i]>>w[i];
	}
	for(int i=1;i<=n;i++)
	{
		for(int j=0;j<=v;j++)//01揹包從v...0 
		{
			if(j-w[i]<0)
			{
				f[j]=f[j];
				continue;
			}
			f[j]=max(f[j],f[j-w[i]]+c[i]);
		}
	}
	cout<<f[v]<<endl;
} 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章