問題描述
乙個工廠製造的產品形狀都是長方體,它們的高度都是 h,長和寬都相等,一共有六個
型號,他們的長寬分別為 1*1, 2*2, 3*3, 4*4, 5*5, 6*6. 這些產品通常使用乙個 6*6*h 的長方
體包裹包裝然後郵寄給客戶。因為郵費很貴,所以工廠要想方設法的減小每個訂單運送時的
包裹數量。他們很需要有乙個好的程式幫他們解決這個問題從而節省費用。現在這個程式由
你來設計。
輸入資料
輸入檔案包括幾行,每一行代表乙個訂單。每個訂單裡的一行包括六個整數,中間用空
格隔開,分別為 1*1 至 6*6 這六種產品的數量。輸入檔案將以 6 個 0 組成的一行結尾。
輸出要求
除了輸入的最後一行 6 個 0 以外,輸入檔案裡每一行對應著輸出檔案的一行,每一行輸
出乙個整數代表對應的訂單所需的最小包裹數。
輸入樣例
0 0 4 0 0 1
7 5 1 0 0 0
0 0 0 0 0 0
輸出樣例
2 1
#include
#include
using namespace std;
int main()
;//表示3*3的產品分別是4k,4k+1,4k+2,4k+3時,3*3產品開啟的新箱子中剩餘2*2的空位數
while(1)
{cin>>a>>b>>c>>d>>e>>f;
if(a==0&&b==0&&c==0&&d==0&&e==0&&f==0)
break;
n=d+e+f+(c+3)/4;//這裡指必須要單獨裝乙個箱子裡
y=5*d+u[c%4];//這裡表示的是前面必須單獨乙個箱子之後,空餘位置可以裝x個2*2的箱子
if(b>y)
n+=(b-y+8)/9;
x=36*n-36*f-25*e-16*d-9*c-4*b;//所有箱子剩餘的1*1空格
if(a>x)
n+=(a-x+35)/36;
cout<
裝箱問題詳解
POJ 百練 1017 裝箱問題
問題描述 乙個工廠製造的產品形狀都是長方體,它們的高度都是 h,長和寬都相等,一共有六個 型號,他們的長寬分別為 1 1,2 2,3 3,4 4,5 5,6 6.這些產品通常使用乙個 6 6 h 的長方 體包裹包裝然後郵寄給客戶。因為郵費很貴,所以工廠要想方設法的減小每個訂單運送時的 包裹數量。他們...
百練1017 裝箱問題
總時間限制 1000ms 記憶體限制 65536kb 描述 乙個工廠製造的產品形狀都是長方體,它們的高度都是h,長和寬都相等,一共有六個型號,他們的長寬分別為1 1,2 2,3 3,4 4,5 5,6 6。這些產品通常使用乙個 6 6 h 的長方體包裹包裝然後郵寄給客戶。因為郵費很貴,所以工廠要想方...
POJ 1017 裝箱問題(貪心)
大意是只有6 6規格的箱子來裝 雖然是描述三維的,但因為高度相同,因此忽略掉 給你若干個從1 1到6 6規格的箱子,求所需最小箱子數。思路 很明顯應該利用貪心,即優先從最大規格的箱子數來考慮,然後因為在裝完較大規格的箱子後,該箱子可以存在剩餘空間,所以仍應該利用,且仍舊優先裝較小規格中較大的箱子。6...