洛谷试炼场P1049动态规划,装箱问题)

题目连接https://www.luogu.org/problemnew/show/P1049

解题思路:f[j]表示当总容量为j时,当前可以装箱的最大值。

#include<bits/stdc++.h>
using namespace std;
int f[20009],w[35];
int main()
{
	//freopen("t.txt","r",stdin);
	int v,n;
	scanf("%d%d",&v,&n);
	for(int i=1;i<=n;i++)
	{
		scanf("%d",&w[i]);
	}
	for(int i=1;i<=n;i++)
	{
		for(int j=v;j>=w[i];j--)
		{
			f[j]=max(f[j],f[j-w[i]]+w[i]);
		}
	}
	printf("%d\n",v-f[v]);
	return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_39861441/article/details/89788210