POJ 1017 Packets
2015-08-18 18:27
239 查看
POJ 1017 Packets
有 1 * 1 到 6 * 6 的产品,最少用几个 6 * 6 的箱子装它们。
有 1 * 1 到 6 * 6 的产品,最少用几个 6 * 6 的箱子装它们。
#include <iostream> #include <cmath> using namespace std; int main() { int n, p1, p2, p3, p4, p5, p6, x , y; int space[4] = {0, 5, 3, 1}; // 一个箱子放入几个 3 * 3 后留下的缝隙可以放入几个 2 * 2 while(true) { cin >> p1 >> p2 >> p3 >> p4 >> p5 >> p6; if(p1 == 0 && p2 == 0 && p3 == 0 && p4 == 0 && p5 == 0 && p6 == 0) { break; } // 第一次放“放不下第二个该型号”的型号,需要消耗n个箱子 n = p4 + p5 + p6 + ceil(p3 / 4.0); // 对 3 * 3 的 package 来讲,四个刚好,否则向上取整 // 计算 4 * 4 的型号和 3 * 3 的型号之间的缝隙可以放下多少个 2 * 2 的型号 y = 5 * p4 + space[p3 % 4]; // 2 * 2 的型号填入这些缝隙,如果填不下,再多消耗几个箱子 if(p2 > y) { n += ceil((p2 - y) / 9.0); // 多出来的每9个刚好一个箱子 } // 计算现在空了多少个 1 * 1 的位置 x = 36 * n - 36 * p6 - 25 * p5 - 16 * p4 - 9 * p3 - 4 * p2; // 1 * 1 的型号填入这些缝隙,如果填不下,再多消耗几个箱子 if(p1>x) { n += ceil((p1 - x) / 36.0); } cout << n << endl; } return 0; }
相关文章推荐
- SSAS处理时“找不到属性键”的解决办法 (转载)
- PowerBuilder中使用JDBC连接MYSQL 无法使用COUNT(*) MAX() 函数的处理
- BAT批处理文件语法
- Method about connect to Netezza using ODBC in SAS EG
- Linux - 系统常用命令
- FFMPEG timestamp conception and Unit Conversion
- HDUOJ_1869(六度分离)(dijkstra)
- poj 3468 线段树成段增减+区间求和
- Android Material Design之Toolbar与Palette实践
- c多线程学习
- Linux - Linux系统目录架构
- Android播放在线音乐文件
- Struts2 result 集类型列表
- JQuery中全选与反选的
- Android播放在线音乐文件
- 【剑指offer】直扑克
- Linux - 文件基本操作管理
- aauto学习系列之<1>
- 合成UIImageView,改变尺寸
- PPP