觀察題目和輸入輸出可以注意幾個細節:
1.每個貨物的右邊都是切齊的
2.數字y是「與頂部的距離」,會從0開始,也就是說可以直接作為陣列的數字
解題思路:
1.用一維陣列儲存每一列分別的狀態
2.將五種貨物分開來寫,每一種都要考慮到高度、寬度、和體積,如(E高3,寬2,體積5),高度說明需要計算從第y列到第y+高-1列的數據,取每一列的數字加上寬度的最大值,就是這幾列最後的數字,然後所佔的面積+=體積。如果最大值超過C,丟棄的數量+=1
3.D,E貨物雖然看起來很醜,但只要加寬度的時候家不同的數字即可,一樣是算最大值。
Java解題小提醒:
不要用註解的輸入方式
雖然用Eclipse編譯沒問題但zerojudge會出錯
/*
String x=scanner.nextLine();
char a[]=x.toCharArray();
int b=Character.getNumericValue(a[2]);
*/
String x=scanner.next();
char[] a=x.toCharArray();
int b=scanner.nextInt();