poj1017 模拟
来源:互联网 发布:ds网络发布会 编辑:程序博客网 时间:2024/06/06 09:03
题意:一个工厂制造的产品形状都是长方体,它们的高度都是h,长和宽都相等,一共有六个型号,他们的长宽分别为 1*1, 2*2, 3*3, 4*4, 5*5, 6*6. 这些产品通常使用一个6*6*h的长方体包裹包装然后邮寄给客户。因为邮费很贵,所以工厂要想方设法的减小每个订单运送时的包裹数量。他们很需要有一个好的程序帮他们解决这个问题从而节省费用。
输入:输入文件包括几行,每一行代表一个订单。每个订单里的一行包括六个整数,中间用空 格隔开,分别为 1*1 至6*6 这六种产品的数量。输入文件将以 6个0组成的一行结尾。
输出:最少包裹数
难度:*
算法:模拟
1.对f个6*6的产品,需要f个箱子
2.对e个5*5的产品,需要e个箱子,另外还能放11个1*1的产品
3.对d个4*4的产品,需要d个箱子,另外还能放5个2*2的产品
4.对c个3*3的产品,需要ceil(c/3.0)个箱子,另外,
如果 c%3 == 0,箱子完全使用,无剩余
如果 c%3 == 1,箱子还能放5个2*2的产品
如果 c%3 == 2,箱子还能放3个2*2的产品
如果 c%3 == 3,箱子还能放1个2*2的产品
5.对b个2*2的箱子,由3和4可算出能可存放的个数,如果不能完全放下,再计算还需要多少个新的箱子
6.对a个1*1的箱子,使用面积法:总面积为36*n(n为前5步算出的箱子数),已用面积为36*f+25*e+16*d+9*c+4*b,
输入:输入文件包括几行,每一行代表一个订单。每个订单里的一行包括六个整数,中间用空 格隔开,分别为 1*1 至6*6 这六种产品的数量。输入文件将以 6个0组成的一行结尾。
输出:最少包裹数
难度:*
算法:模拟
1.对f个6*6的产品,需要f个箱子
2.对e个5*5的产品,需要e个箱子,另外还能放11个1*1的产品
3.对d个4*4的产品,需要d个箱子,另外还能放5个2*2的产品
4.对c个3*3的产品,需要ceil(c/3.0)个箱子,另外,
如果 c%3 == 0,箱子完全使用,无剩余
如果 c%3 == 1,箱子还能放5个2*2的产品
如果 c%3 == 2,箱子还能放3个2*2的产品
如果 c%3 == 3,箱子还能放1个2*2的产品
5.对b个2*2的箱子,由3和4可算出能可存放的个数,如果不能完全放下,再计算还需要多少个新的箱子
6.对a个1*1的箱子,使用面积法:总面积为36*n(n为前5步算出的箱子数),已用面积为36*f+25*e+16*d+9*c+4*b,
用总的面积减去已用面积,可知已用的箱子中还能存放多少个1*1的产品,如果不能完全放下,再计算还需要多少个新的箱子。
#include<iostream>#include <math.h>using namespace std;int main(){int a,b,c,d,e,f;int m[4] = {0,5,3,1};while (cin >> a >> b >> c >> d >> e >> f){if (a+b+c+d+e+f == 0){break;}int n = 0;n += f;// 6*6n += e;// 5*5n += d;// 4*4n += ceil(double(c/4.0));// 3*3int x = d*5 + m[c%4];// 已选用箱子剩余2*2位置的个数 if (b > x) // 2*2{n += ceil(double(b-x)/9.0);// 还需要多少个新箱子盛放2*2的产品 }int y = 36*n - 36*f - 25*e - 16*d - 9*c - 4*b;// 已选用箱子剩余1*1的个数 if (a > y){n += ceil(double(a-y)/36.0);// 还需要多少个新箱子盛放1*1的产品 }cout << n << endl;}}
0 0
- poj1017 模拟
- Packets(模拟 POJ1017)
- POJ1017 - Packets(模拟)
- POJ1017
- poj1017
- poj1017
- poj1017
- poj1017
- poj1017
- poj1017
- poj1017
- poj1017
- poj1017
- POJ1017
- poj1017
- poj1017
- poj1017
- poj1017
- 配置文件的读写
- Zookeeper全解析——Paxos作为灵魂
- java中的多线程安全问题
- PHP之函数
- Javascript数据类型
- poj1017 模拟
- 虚拟机安装黑苹果
- Android Wear 进阶 2.2 Create Custom Layout 创建自定义的布局
- 很特别的音乐播放界面
- java学习日记——static关键字
- 从头认识Spring-3.1 简单的AOP日志实现-某方法之前的前后记录日志
- 初建MongoDB
- J2EE的13个规范总结
- hdu 1166 敌兵布阵(线段树)