笨笨熊搬家打包篇
2014-04-30 00:55
162 查看
笨笨熊搬家打包篇
描述:
森林里的笨笨熊今天可开心啦——他买了新房子,乔迁新喜要搬家了。因此,笨笨熊请了许多好朋友来帮忙搬家,并准备了很多小纸盒用来装需要搬的物品,不过,这些纸盒的容积都是相同的,并且最多只能装两个物品。但是,为了不打扰太多的朋友,笨笨熊想了个“聪明”办法:让每个纸盒使用效率最高(注:只要纸盒容积大于物品的体积之和就认为可以装下;物品体积不会大于纸盒容积),这样需要的纸盒最少。为了帮助笨笨熊提前通知朋友,请你根据笨笨熊的办法,帮忙算出:需要纸盒的最少数目是多少?
运行时间限制: 无限制
内存限制: 无限制
输入:
整数V——纸盒的容积;
整数N——物品的总数目N;
共N个整数(对应N个物品的体积,每个整数用空格隔开)。
输出:
整数M——需要纸盒的最少数目;
样例输入:
10
2
2 3
样例输出:
1
我的想法是现将输入的物体体积按从大到小排序(也可以从小到大),然后最大的与最小的体积和不超过容积的话则这两个一起放在一个盒子里,否则最大的那个单独放在一个盒子里。如果最后剩余一个则单独放置。每放一次盒子数加1。
描述:
森林里的笨笨熊今天可开心啦——他买了新房子,乔迁新喜要搬家了。因此,笨笨熊请了许多好朋友来帮忙搬家,并准备了很多小纸盒用来装需要搬的物品,不过,这些纸盒的容积都是相同的,并且最多只能装两个物品。但是,为了不打扰太多的朋友,笨笨熊想了个“聪明”办法:让每个纸盒使用效率最高(注:只要纸盒容积大于物品的体积之和就认为可以装下;物品体积不会大于纸盒容积),这样需要的纸盒最少。为了帮助笨笨熊提前通知朋友,请你根据笨笨熊的办法,帮忙算出:需要纸盒的最少数目是多少?
运行时间限制: 无限制
内存限制: 无限制
输入:
整数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; //降序排列 }
相关文章推荐
- 2014华为编程大赛题目:笨笨熊搬家打包篇
- 笨笨熊搬家——交通(java)
- 2014华为编程大赛题目2:笨笨熊搬家打包篇
- 华为编程大赛,笨笨熊搬家,OJ平台网络问题提交不上代 a21d 码。先将代码到这。
- 笨笨熊搬家——交通(java)-2
- 华为编码比赛(笨笨熊搬家打包篇,打牌,扑克牌排序)
- 阿里云linux打包转移搬家备份文件的方法!
- 笨笨熊搬家之交通篇
- 笨笨熊搬家打包篇
- 2015华为实习笨笨熊搬家交通篇JAVA/C++
- 笨笨熊搬家问题深入--迷宫问题--深度搜索--还是填充思想并且打印出路线--递归--结构体数组---编程随笔(4)
- 华为编程——笨笨熊搬家
- 华为机试之笨笨熊搬家
- 阿里云linux打包转移搬家备份文件的方法!
- 华为机试——笨笨熊搬家(打包篇)
- 笨笨熊搬家问题 填充思想--怎么输出结果--递归--每日一练(六)
- 搬家到这里
- c#.net2005 打包程序安装完成后自动运行
- 2014年最新810多套源码2.46GB免费一次性打包下载
- 我博客搬家啦!!!