题目:
A factory produces products packed in square packets of the same height h and of the sizes 1*1, 2*2, 3*3, 4*4, 5*5, 6*6. These products are always delivered to customers in the square parcels of the same height h as the products have and of the size 6*6. Because of the expenses it is the interest of the factory as well as of the customer to minimize the number of parcels necessary to deliver the ordered products from the factory to the customer. A good program solving the problem of finding the minimal number of parcels necessary to deliver the given products according to an order would save a lot of money. You are asked to make such a program.
Input
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
分析:
6*6,5*5,4*4每种这样的箱子占一个大箱子,4个3*3的箱子占一个大箱子,2*2的可以放在跟4*4放在一起,也可以跟3*3的放在一起,1*1的可以放在有空的任意地方;
代码:
#include<iostream> using namespace std; int main() { int i,as,t,a2,a1,a[7]; while(1) { as=t=0; for(i=1;i<7;as+=a[i],i++) cin>>a[i]; if(as==0) break; t=a[5]+a[4]+a[6]+(a[3]+3)/4; if(a[3]%4) a2=(3-a[3]%4)*2+1+a[4]*5; else a2=a[4]*5; if(a[2]>a2) t+=(a[2]-a2+8)/9; a1=(t-a[6])*36-a[5]*25-a[4]*16-a[3]*9-a[2]*4; if(a[1]>a1) t+=(a[1]-a1+35)/36; cout<<t<<endl; } }
本文介绍了一个用于优化产品装箱过程的算法,旨在减少运输成本。该算法通过计算不同大小的产品如何最优地放入标准尺寸的大箱子中,从而实现最小化所需包裹数量的目标。
1008

被折叠的 条评论
为什么被折叠?



