某个工厂生产的产品都是正方体,大小分别为1*1, 2*2, 3*3, 4*4, 5*5, 6*6,现将这些产品装进大小为6*6的包裹中,求最少需要多少个这样的包裹?
贪心法:对于6*6,5*5和4*4的物品,一个包裹只能装一个;3*3的物品,一个包裹最多能装4个;2*2的物品,一个包裹最多可以装9个;1*1的物品,一个包裹最多能装36个。
import java.util.Scanner;
public class Main {
public static void main(String []args){
Scanner in = new Scanner(System.in);
while(in.hasNext()){
int[] packets = new int[7];
boolean stop = true;
packets[0] = 0;
for(int i = 1; i <= 6; ++i){
packets[i] = in.nextInt();
if(packets[i] != 0)
stop = false;
}
if(stop) break;
int parcels = packets[6] + packets[5] + packets[4] + (packets[3]+3)/4;
int num[] = {0, 5, 3, 1};
int box2 = packets[4]*5 + num[packets[3]%4];
if(box2 < packets[2])
parcels += (packets[2]-box2+8)/9;
int box1 = parcels*36 - packets[6]*36 - packets[5]*25 - packets[4]*16 - packets[3]*9 - packets[2]*4;
if(box1 < packets[1])
parcels += (packets[1]-box1+35)/36;
System.out.println(parcels);
}
}
}