您的位置:首页 > 其它

Vojos P1133装箱问题

2015-07-17 21:41 274 查看
入门01背包,滚动数组。

把重量和价值都看成同一个数a[i]。

使箱子的剩余空间为最小,相当于让背包装尽可能多的东西。

#include<iostream>
using namespace std;
int mymax(int a,int b)
{
	if(a>b)
	{
		return a;
	}
	else
	{
		return b;
	}
}
int main()
{
	int v,n;
	int a[35],dp[20005]={0};
	cin>>v>>n;
	for(int i=0;i<n;i++)
	{
		cin>>a[i];
	}
	for(int i=0;i<n;i++)
	{
		for(int j=v;j>=a[i];j--)
		{
			dp[j]=mymax(dp[j],dp[j-a[i]]+a[i]);
		}
	}
	cout<<v-dp[v]<<endl;
	return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: