网站头条怎么做,徐州集团网站建设方案,俄罗斯跨境电商平台ozon,wordpress tag做专题Problem Description 一个工厂生产的产品形状都是长方体#xff0c;高度都是h#xff0c;主要有1*1#xff0c;2*2#xff0c;3*3#xff0c;4*4#xff0c;5*5#xff0c;6*6等6种。这些产品在邮寄时被包装在一个6*6*h的长方体包裹中。由于邮费很贵#xff0c;工厂希望… Problem Description 一个工厂生产的产品形状都是长方体高度都是h主要有1*12*23*34*45*56*6等6种。这些产品在邮寄时被包装在一个6*6*h的长方体包裹中。由于邮费很贵工厂希望减小每个订单的包裹数量以增加他们的利润。因此他们需要一个好的程序帮他们解决这个问题。你的任务就是设计这个程序。 Input 输入包括多组测试数据每一行代表一个订单。每个订单里的一行包括六个整数用空格隔开从小到大分别为这6种产品的数量。6个0表示文件结束。 Output 针对每个订单输出一个整数占一行代表对应的订单所需的最小包裹数。没有多余的空行。 Sample Input 0 0 4 0 0 1
7 5 1 0 0 0
0 0 0 0 0 0 Sample Output 2
1 #include iostream
#include math.husing namespace std;int main(int argc, const char * argv[])
{int boxA,boxB,boxC,boxD,boxE,boxF;//不同底面积箱子数量int left2x2,left1x1;int countBox;//使用大箱子数量while(cinboxAboxBboxCboxDboxEboxF){//结束条件if (boxA 0 boxB 0 boxC 0 boxD 0 boxE 0 boxF 0){break;}//体积为4、5、6的有一个就需要一个箱子体积为3的需要boxC / 4个箱子countBox boxD boxF boxE (boxC 3) / 4;//剩余的空间我们采取贪心的策略先放2 * 2的箱子4 * 4的箱子还剩下boxD * 5个2 * 2的空间left2x2 boxD * 5;//对于3 * 3底面积的需要分情况讨论if (boxC % 4 3) //3 * 3的箱子装完了还剩下3个只留下了1个2 * 2的空间{left2x2 1;}else if (boxC % 4 2) //这种情况下留下了3个2 * 2的空间{left2x2 3;}else if (boxC % 4 1) //注意哦这种情况下最多可以留下5个2 * 2的空间哈{left2x2 5;}if (left2x2 boxB){countBox (((boxB - left2x2) 8) / 9); //2 * 2箱子没地方的开新箱子。}//解决了2 * 2的空间还剩下1 * 1的,总体积减去所有其他箱子的体积就剩下1 * 1的空间了。left1x1 36 * countBox - 36 * boxF - 25 * boxE - 16 * boxD - 9 * boxC - 4 * boxB;if (left1x1 boxA)//空间不够加大箱子{countBox (((boxA - left1x1) 35) / 36);}cout 转载于:https://www.cnblogs.com/yangf428/p/10028520.html