日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

        歡迎訪問 生活随笔!

        生活随笔

        當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

        编程问答

        A - 装箱问题

        發布時間:2023/12/1 编程问答 30 豆豆
        生活随笔 收集整理的這篇文章主要介紹了 A - 装箱问题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

        Problem Description

        一個工廠生產的產品形狀都是長方體,高度都是h,主要有1*1,2*2,3*3,4*4,5*5,6*6等6種。這些產品在郵寄時被包裝在一個6*6*h的長方體包裹中。由于郵費很貴,工廠希望減小每個訂單的包裹數量以增加他們的利潤。因此他們需要一個好的程序幫他們解決這個問題。你的任務就是設計這個程序。

        Input

        輸入包括多組測試數據,每一行代表一個訂單。每個訂單里的一行包括六個整數,用空格隔開,從小到大分別為這6種產品的數量。6個0表示文件結束。

        Output

        針對每個訂單輸出一個整數,占一行,代表對應的訂單所需的最小包裹數。沒有多余的空行。

        Sample Input

        0 0 4 0 0 1 7 5 1 0 0 0 0 0 0 0 0 0

        Sample Output

        2 1

        #include <iostream> #include <math.h>using namespace std;int main(int argc, const char * argv[]) {int boxA,boxB,boxC,boxD,boxE,boxF;//不同底面積箱子數量int left2x2,left1x1;int countBox;//使用大箱子數量while(cin>>boxA>>boxB>>boxC>>boxD>>boxE>>boxF){//結束條件if (boxA == 0 && boxB == 0 && boxC == 0 && boxD == 0 && boxE == 0 && boxF == 0){break;}//體積為4、5、6的有一個就需要一個箱子,體積為3的需要boxC / 4個箱子countBox = boxD + boxF + boxE + (boxC + 3) / 4;//剩余的空間我們采取貪心的策略,先放2 * 2的箱子,4 * 4的箱子還剩下boxD * 5個2 * 2的空間left2x2 = boxD * 5;//對于3 * 3底面積的需要分情況討論if (boxC % 4 == 3) //3 * 3的箱子裝完了還剩下3個,只留下了1個2 * 2的空間 {left2x2 += 1;}else if (boxC % 4 == 2) //這種情況下留下了3個2 * 2的空間 {left2x2 += 3;}else if (boxC % 4 == 1) //注意哦,這種情況下最多可以留下5個2 * 2的空間哈 {left2x2 += 5;}if (left2x2 < boxB){countBox += (((boxB - left2x2) + 8) / 9); //2 * 2箱子沒地方的,開新箱子。 }//解決了2 * 2的空間還剩下1 * 1的,總體積減去所有其他箱子的體積,就剩下1 * 1的空間了。left1x1 = 36 * countBox - 36 * boxF - 25 * boxE - 16 * boxD - 9 * boxC - 4 * boxB;if (left1x1 < boxA)//空間不夠,加大箱子 {countBox += (((boxA - left1x1) + 35) / 36);}cout

        ?

        轉載于:https://www.cnblogs.com/yangf428/p/10028520.html

        總結

        以上是生活随笔為你收集整理的A - 装箱问题的全部內容,希望文章能夠幫你解決所遇到的問題。

        如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。