題目描述 description
乙個工廠製造的產品形狀都是長方體,它們的高度都是h,長和寬都相等,一共有六個型號,他們的長寬分別為1*1, 2*2, 3*3, 4*4, 5*5, 6*6。這些產品通常使用乙個 6*6*h 的長方體包裹包裝然後郵寄給客戶。因為郵費很貴,所以工廠要想方設法的減小每個訂單運送時的包裹數量。他們很需要有乙個好的程式幫他們解決這個問題從而節省費用。現在這個程式由你來設計。
輸入描述 input description
輸入檔案包括幾行,每一行代表乙個訂單。每個訂單裡的一行包括六個整數,中間用空格隔開,分別為1*1至6*6這六種產品的數量。輸入檔案將以6個0組成的一行結尾。
輸出描述 output description
除了輸入的最後一行6個0以外,輸入檔案裡每一行對應著輸出檔案的一行,每一行輸出乙個整數代表對應的訂單所需的最小包裹數。
樣例輸入 sample input
0 0 4 0 0 1
7 5 1 0 0 0
0 0 0 0 0 0
樣例輸出 sample output 2
1
資料範圍及提示 data size & hint
資料範圍很小,模擬即可
【題解】
模擬+貪心。認真理解對貪心策略的選擇很有幫助
【**】
#include#include#includeusing namespace std;
int a[10];
int ans,k;
int main()
//用1和2混合來填,如果無法填滿無法用其它的填
//填3,先4個一組填,然後可以用1,2來填
ans+=a[3]/4; a[3]%=4;
if (a[3]==1)
if (a[3]==2)
if (a[3]==3)
//填2
k=a[2]/9; ans+=k; a[2]%=9;//先把整的都填了
if(a[2])
//填1
k=a[1]/36; ans+=k; a[1]%=36;//先把整的都填了
if (a[1]) ans++;//如果還剩下,就只能再填到乙個裡面了
printf("%d\n",ans);
}}
codevs 1464 裝箱問題 2
題目描述 description 乙個工廠製造的產品形狀都是長方體,它們的高度都是h,長和寬都相等,一共有六個型號,他們的長寬分別為1 1,2 2,3 3,4 4,5 5,6 6。這些產品通常使用乙個 6 6 h 的長方體包裹包裝然後郵寄給客戶。因為郵費很貴,所以工廠要想方設法的減小每個訂單運送時的...
codevs 1464 裝箱問題 2 x
題目描述 description 乙個工廠製造的產品形狀都是長方體,它們的高度都是h,長和寬都相等,一共有六個型號,他們的長寬分別為1 1,2 2,3 3,4 4,5 5,6 6。這些產品通常使用乙個 6 6 h 的長方體包裹包裝然後郵寄給客戶。因為郵費很貴,所以工廠要想方設法的減小每個訂單運送時的...
WIKIOI 1464 裝箱問題2
這題目其實很簡單 把第i個格仔抽象成乙個i i體積的箱子,那麼這行資料的體積總和為 a i i i 1 i 6 然後用這個總體積去除以6 6,即看能放多少個6 6體積的箱子 這個時候要注意!如果能除盡則證明正好分配完整,否則則需要額外再加1個箱子,這裡只要把tot強制轉換成float型再除再比較即可...