【NOJ1577】【算法实验四】0-1背包问题

1577.0-1背包问题

描述:

一个背包容量为c ,现有n件物品,求能装入背包的最大重量是多少?

输入:

先输入两个正整数n、c(0<n、c<1000),表示物品的件数和背包容量,再输入n个正整数,分别是这n件物品的重量。

输出:

输出能装入背包的最大重量。

输入样例:

5 50
23 18 13 35 24

输出样例:

48

#include<iostream>
#include<algorithm>

using namespace std;

int c,v,n;
int w[1005],sum[1005];

bool cmp(int a,int b)
{
	return a>b;
}

int main()
{
	cin>>n>>c;
	int i,j;
	for(i=0;i<n;i++)
	{
		cin>>w[i];
	}
	sort(w,w+n,cmp);
	for(i=0;i<n;i++)
	{
		for(j=i;j<n;j++)
		{
			sum[i]+=w[j];
			if(sum[i]>c)sum[i]-=w[j];
		}
	}
	sort(sum,sum+n,cmp);
	cout<<sum[0]<<endl;
	return 0;
}
已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 岁月 设计师:pinMode 返回首页