【题解-信息学奥赛一本通】1226:装箱问题 📅 2026/7/13 1:03:47 题目1226装箱问题题目描述一个工厂制造的产品形状都是长方体它们的高度都是h长和宽都相等一共有六个型号他们的长宽分别为1×1, 2×2, 3×3, 4×4, 5×5, 6×6。这些产品通常使用一个6×6×h的长方体包裹包装然后邮寄给客户。因为邮费很贵所以工厂要想方设法的减小每个订单运送时的包裹数量。他们很需要有一个好的程序帮他们解决这个问题从而节省费用。现在这个程序由你来设计。输入输入包括几行每一行代表一个订单。每个订单里的一行包括六个整数中间用空格隔开分别为1×1至6×6这六种产品的数量。输入将以6个0组成的一行结尾。输出除了输入的最后一行6个0以外输入文件里每一行对应着输出文件的一行每一行输出一个整数代表对应的订单所需的最小包裹数。时空限制1s / 64MB样例输入0 0 4 0 0 1 7 5 1 0 0 0 0 0 0 0 0 0样例输出2 1代码#includebits/stdc.husingnamespacestd;constintN610;inta[N],sum;intmain(){while(cina[1]a[2]a[3]a[4]a[5]a[6],a[1]||a[2]||a[3]||a[4]||a[5]||a[6]){suma[6]a[5]a[4];if(a[5])a[1]max(0,a[1]-11*a[5]);if(a[2]a[4]){intxa[2]/5;intta[2];a[2]a[2]-min(a[4]*5,x*5a[2]%5);a[4]a[4]*36-(a[4]*16(t-a[2])*4);}if(a[1]a[4])a[1]max(0,a[1]-a[4]);suma[3]/4;a[3]%4;if(a[3]){sum;if(a[2]){switch(a[3]){case1:a[2]-5;a[3]a[3]*95*4;break;case2:a[2]-3;a[3]a[3]*93*4;break;case3:a[2]-1;a[3]a[3]*91*4;break;}}a[2]max(a[2],0);if(a[1])a[1]max(0,a[1]-(36-a[3]));}suma[2]/9;a[2]%9;if(a[2]){sum;if(a[1])a[1]max(0,a[1]-(36-a[2]*4));}suma[1]/36;a[1]%36;if(a[1])sum;coutsumendl;}return0;}结果