奔奔熊搬家包装物品

叙述性说明:

笨笨熊在森林中也能得到幸福的今天,朋友——他买了新房子,若要将搬迁到新喜。故。请承受了很大的笨笨的朋友帮忙搬家,并准备非常需要移动用来装物品小托盘,只要,这些纸箱都是同一个卷,而且最多可容纳只有两篇文章。但,的朋友,笨笨熊想了个“聪明”办法:让每一个纸盒使用效率最高(注:仅仅要纸盒容积大于物品的体积之和就觉得能够装下。物品体积不会大于纸盒容积),这样须要的纸盒最少。

为了帮助笨笨熊提前通知朋友。请你依据笨笨熊的办法。帮忙算出:须要纸盒的最少数目是多少?

执行时间限制: 无限制

内存限制: 无限制

输入:

整数V——纸盒的容积。

整数N——物品的总数目N;

共N个整数(相应N个物品的体积,每一个整数用空格隔开)。

输出:

整数M——须要纸盒的最少数目;

例子输入:

10

2

2 3

例子输出:

1

我的想法是现将输入的物体体积按从大到小排序(也能够从小到大),然后最大的与最小的体积和不超过容积的话则这两个一起放在一个盒子里,否则最大的那个单独放在一个盒子里。

假设最后剩余一个则单独放置。每放一次盒子数加1。

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
bool order(int a,int b);
int main(){
	int v,n,m=0,input,first,last;
	vector<int> obj;
   	cout << "纸盒的容积V:";
	cin >> v;
	cout << "物品的总数目N:";
	cin >> n;
	cout << "这N个物品的体积各自是:";
    for(int i=0;i!=n;i++)
	{
		cin >> input;
		obj.push_back(input);

	}
// 	cout << "输入的是:";
//
// 	for(i=0;i!=n;i++)
// 	{
//
// 		cout <<obj[i]<<" ";
// 	}
// 	cout <<endl;
	sort(obj.begin(),obj.end(),order);  //降序排列obj中的元素。
//
//     cout << "排序后:" ;
// 	for(int so=0;so!=obj.size();so++)   cout << obj[so]<<"  ";
//   	cout <<endl;

	first=0;                                     //较大的物品
	last=obj.size()-1;							 //较小的物品

	if(obj[first]>v)
	{
		cout <<"ERROR:输入的数超过容器容积"<<endl;
		return 1;
	}
	if(n==1) m=1;                               //仅仅有一个物品。
	while(first<last)
	{
		if(obj[first]+obj[last]<v+1)            //较大的物品与较小的物品放在一起。
		{
			m++;
			first++;
			last--;
		}
		else {m++;first++;}                     //较大的物品单独放。

		if(first==last) m++;                    //最后剩余一个单独放
	}

	cout << "至少须要" << m<<"个容器" << endl;
	return 0;
}
bool order(int a,int b)
{
	return a>b; //降序排列
}

版权声明:本文博主原创文章。博客,未经同意不得转载。

时间: 2024-08-09 02:00:39

奔奔熊搬家包装物品的相关文章

笨笨熊搬家打包篇

笨笨熊搬家打包篇 描述:  森林里的笨笨熊今天可开心啦——他买了新房子,乔迁新喜要搬家了.因此,笨笨熊请了许多好朋友来帮忙搬家,并准备了很多小纸盒用来装需要搬的物品,不过,这些纸盒的容积都是相同的,并且最多只能装两个物品.但是,为了不打扰太多的朋友,笨笨熊想了个“聪明”办法:让每个纸盒使用效率最高(注:只要纸盒容积大于物品的体积之和就认为可以装下:物品体积不会大于纸盒容积),这样需要的纸盒最少.为了帮助笨笨熊提前通知朋友,请你根据笨笨熊的办法,帮忙算出:需要纸盒的最少数目是多少?        

笨笨熊搬家交通篇

笨笨熊要搬家,它现在的家在B点,新的豪宅在H点,现在要从B点到H点 地图R表示行,C表示列,其中: -表示能通过 #表示不能通过 B表示笨笨熊原来的家 H表示笨笨熊的新豪宅 输入 R C R×C矩阵 输出 Y//表示可以通过 N//表示不可以通过 #include <iostream> #include <queue> using namespace std; //Point in the grid typedef struct { int x; int y; }Pos; //re

华为上机题汇总(十四)

华为上机题汇总(十四) 注:编译环境为Visual Studio 2012,答案仅供参考. 目录 华为上机题汇总十四 目录 第六十六题 第六十七题 第六十八题 第六十九题 第七十题 第六十六题 66.问题描述 股票是一种有价证券,是股份公司为筹集资金发给投资者作为公司资本部分所有权的凭证,成为股东以此获得股息(股利),并分享公司成长或交易市场波动带来的利润:但也要共同承担公司运作错误所带来的风险.南邮华为俱乐部会长小郑同学最近计划进入股市淘金,看中一支股票,借本次华为赛机会,请你帮忙指出:何时买

第六届华为创新杯编程大赛第二轮(2014.4.29)

第一题:外星人比数的大小 来自星星的都教授除了所有感官比地球人高出七倍,始终容颜不老以外,还拥有一项在地球人看来特别神奇的能力,他会瞬间(0.00000000000000000000001s以内)按照他的规则比较地球人熟悉的两个十进制数字的大小,他比较的规则如下:1.将要比较的两个数字分别转换成二进制数字:2.计算两个二进制数字中1的个数,个数多的数字为两者中的大者:3.负数按照其绝对值进行比较:请利用地球人发明的计算机程序逼近都教授的特异功能,实现时可以有以下约束:1.输入数据为范围在-327

大搬家(百度之星资格赛1001)

大搬家 近期B厂组织了一次大搬家,所有人都要按照指示换到指定的座位上.指示的内容是坐在位置i上的人要搬到位置j上.现在B厂有N个人,一对一到N个位置上.搬家之后也是一一对应的,改变的只有位次. 在第一次搬家后,度度熊由于疏忽,又要求大家按照原指示进行了一次搬家.于是,机智的它想到:再按这个指示搬一次家不就可以恢复第一次搬家的样子了.于是,B厂史无前例的进行了连续三次搬家. 虽然我们都知道度度熊的“机智”常常令人堪忧,但是不可思议的是,这回真的应验了.第三次搬家后的结果和第一次的结果完全相同. 那

ACM学习历程—BestCoder 2015百度之星资格赛1001 大搬家(递推 &amp;&amp; 组合数学)

Problem Description 近期B厂组织了一次大搬家,所有人都要按照指示换到指定的座位上.指示的内容是坐在位置i 上的人要搬到位置j 上.现在B厂有N 个人,一对一到N 个位置上.搬家之后也是一一对应的,改变的只有位次. 在第一次搬家后,度度熊由于疏忽,又要求大家按照原指示进行了一次搬家.于是,机智的它想到:再按这个指示搬一次家不就可以恢复第一次搬家的样子了.于是,B厂史无前例的进行了连续三次搬家. 虽然我们都知道度度熊的“机智”常常令人堪忧,但是不可思议的是,这回真的应验了.第三次

9岁女儿作业没写好 遭母亲打成“熊猫眼”h

舒默说,"美国有切实的挑战,需要做实事",如果特朗普继续当"推特总统"则会成为一个失败的总统. 作为过来人,曾宪章深知,创新创业需要激情,更需要扎实的基本功.技术.制造.营销.人际.有效的表达--这些功夫缺一不可,而这恰恰是许多前扑后拥的创业者容易忽视的. 此前,美国第39任总统吉米?卡特已明确表示将出席特朗普的就职典礼.乔治?W?布什的父亲.美国第41任总统乔治?H?布什表示,由于身体原因无法出席典礼. "2016年国际乒联世界巡回赛 Laox(乐购仕)

1001—大搬家

大搬家 Accepts: 1506 Submissions: 6255 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) Problem Description 近期B厂组织了一次大搬家,所有人都要按照指示换到指定的座位上.指示的内容是坐在位置i上的人要搬到位置j上.现在B厂有N个人,一对一到N个位置上.搬家之后也是一一对应的,改变的只有位次. 在第一次搬家后,度度熊由于疏忽,又要求大

2015年百度之星程序设计大赛 - 资格赛 (1001 大搬家)

题目链接:click here~~ [题目大意]: 近期B厂组织了一次大搬家,所有人都要按照指示换到指定的座位上.指示的内容是坐在位置i上的人要搬到位置j上.现在B厂有N个人,一对一到N个位置上.搬家之后也是一一对应的,改变的只有位次. 在第一次搬家后,度度熊由于疏忽,又要求大家按照原指示进行了一次搬家.于是,机智的它想到:再按这个指示搬一次家不就可以恢复第一次搬家的样子了.于是,B厂史无前例的进行了连续三次搬家. 虽然我们都知道度度熊的"机智"常常令人堪忧,但是不可思议的是,这回真的