1226 裝箱問題

2021-10-02 17:14:12 字數 1446 閱讀 6065

1226:裝箱問題

時間限制: 1000 ms 記憶體限制: 65536 kb

提交數: 3422 通過數: 1726

【題目描述】

乙個工廠製造的產品形狀都是長方體,它們的高度都是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

【輸出樣例】21

————————————————

思路:一、首先裝6×6的,每個6×6的裝乙個箱子剛好。

二、然後裝5×5的,每個5×5的需要乙個箱子,箱子裡多餘的空間裝1×1的,可以每個箱子裝11個。

三、然後裝4×4的,每個4×4的需要乙個箱子。箱子裡多餘的空間可以裝2×2,也可以裝1×1。先裝2×2,每個箱子最後可以裝5個2×2,當2×2不夠時,再考慮裝1×1的。每個箱子最多裝20個1×1。

四、然後裝3×3的。每個箱子可以裝4個3×3的。剩下的3×3又分3種情形:

1)剩1個3×3,要裝乙個箱子,剩餘27格空間。最多可以裝5個2×2和7個1×1;

2)剩2個3×3,要裝乙個箱子,剩餘18格空間。最多可以裝3個2×2和6個1×1;

3)剩3個3×3,要裝乙個箱子,剩餘9格空間,最多可以裝1個2×2和5個1×1;

然後裝2×2的,每個箱子可以裝9個2×2的。剩下的用1×1的裝。

最後考慮裝1×1的,每個箱子可以裝36個1×1,如果還有多餘的,則增加乙個箱子裝。

//g 1*1空位數

//h 2*2空位數

int k[4]

=;//3*3四種情況圖 ,2*2的個數

//表示3*3的產品為3*3產品開啟的新箱子中剩餘2*2的空位數

//即剩餘2*2的空位數 0,1,2,3種情況

intmain()

return0;

}

T1226 裝箱問題

題目描述 乙個工廠製造的產品形狀都是長方體,它們的高度都是h,長和寬都相等,一共有六個型號,他們的長寬分別為1 1,2 2,3 3,4 4,5 5,6 6。這些產品通常使用乙個6 6 h的長方體包裹包裝然後郵寄給客戶。因為郵費很貴,所以工廠要想方設法的減小每個訂單運送時的包裹數量。他們很需要有乙個好...

問題A 裝箱問題

思路 思路 根據演算法筆記上01揹包問題的一維形式改編,就僅僅是把每件物品的價值改為1,再未做其他修改,後來發現不行 const int maxn 1001 int dp maxn int w maxn int main for int i 0 i參照別人的答案,進行的思考 首先,狀態轉移方程 dp...

CodeVS1226 倒水問題

題目描述 description 有兩個無刻度標誌的水壺,分別可裝 x 公升和 y 公升 x,y 為整數且均不大於 100 的水。設另有一水 缸,可用來向水壺灌水或接從水壺中倒出的水,兩水壺間,水也可以相互傾倒。已知 x 公升壺為空 壺,y 公升壺為空壺。問如何通過倒水或灌水操作,用最少步數能在x或...