装箱问题

匿名 (未验证) 提交于 2019-12-02 23:36:01

有一个箱子容量为V(正整数,0<=V<=20000),同时有n个物品(0<n<=30),每个物品有一个体积(正整数)。

要求n个物品中,任取若干个装入箱内,使箱子的剩余空间为最小。

一个整数v,表示箱子容量

一个整数n,表示有n个物品

一个整数,表示箱子剩余空间。

24

6

8

3

12

7

9

7

0

 #include <iostream> #include <algorithm> using namespace std;  int getgoods(int goods[],int k,int v,int n) { 	int a,b; 	if(k >= n) 	return v; 	if(v - goods[k] < 0 ) 	return v; 	if(v - goods[k] == 0) 	return 0; 	a=getgoods(goods,k+1,v-goods[k],n); 	b=getgoods(goods,k+1,v,n); 	if(a < b) 	return a; 	else 	return b; }  int main(void) { 	int v,n; 	int i; 	int goods[31]; 	int last; 	cin >> v >> n; 	for(i=0;i < n;i++) 	cin >> goods[i]; 	std::sort(goods,goods + n); 	last=getgoods(goods,0,v,n); 	cout << last << endl; 	return 0; } 

文章来源: https://blog.csdn.net/qq_42418728/article/details/88201068
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!