貪心演算法之裝箱問題(c++)__演算法

來源:互聯網
上載者:User

轉載於http://blog.csdn.net/c20190413/article/details/77396357###;

裝箱問題 Description       一個工廠製造的產品形狀都是長方體,它們的高度都是h,長和寬都相等,一共有六個型號,他們的長寬分別為1*1, 2*2, 3*3, 4*4, 5*5, 6*6。這些產品通常使用一個 6*6*h 的長方體包裹封裝然後郵寄給客戶。因為郵費很貴,所以工廠要想方設法的減小每個訂單運送時的包裹數量。他們很需要有一個好的程式幫他們解決這個問題從而節省費用。現在這個程式由你來設計。 Input       輸入檔案包括幾行,每一行代表一個訂單。每個訂單裡的一行包括六個整數,中間用空格隔開,分別為1*1至6*6這六種產品的數量。輸入檔案將以6個0組成的一行結尾。 Output       除了輸入的最後一行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 

Source Central Europe 1996 思路解析
代碼實現 [cpp]  view plain  copy #include<bits/stdc++.h>   using namespace std;   int p1,p2,p3,p4,p5,p6,sum;   main()   {       while(scanf("%d%d%d%d%d%d",&p1,&p2,&p3,&p4,&p5,&p6)&&p1+p2+p3+p4+p5+p6)       {           sum=0;           sum=p6+p5+p4;           p1-=min(p1,p5*11);           if(p2<p4*5)               p1-=min(p1,(p4*5-p2)*4);           p2-=min(p2,p4*5);           p5=p4=0;           sum+=ceil(p3/4.0);           p3%=4;           if(p3==1)           {               if(p2<5) p1-=min(p1,(5-p2)*4);               p1-=min(p1,7);               p2-=min(p2,5);           }           if(p3==2)           {               if(p2<3) p1-=min(p1,(3-p2)*4);               p1-=min(p1,6);               p2-=min(p2,3);           }           if(p3==3)           {               if(!p2) p1-=min(p1,4);               p1-=min(p1,5);               p2-=min(p2,1);           }           sum+=ceil(p2/9.0);           p2%=9;           if(p2) p1-=min(p1,4*(9-p2));           sum+=ceil(p1/36.0);           printf("%d\n",sum);  

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.