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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

百练OJ:1017:装箱问题

發布時間:2025/3/19 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 百练OJ:1017:装箱问题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題目鏈接:http://bailian.openjudge.cn/practice/1017/

分析六個型號的產品占用箱子的具體情況如下:6*6 的產品每個會占用一個完整的箱子,并且沒有空余空間;5*5 的產品每個占用一個新的箱子,并且留下11 個可以盛放1*1
的產品的空余空間;4*4 的產品每個占用一個新的箱子,并且留下5 個可以盛放2*2 的產品的空余空間;3*3 的產品情況比較復雜,首先3*3 的產品不能放在原來盛有5*5 或者4*4 的箱子中,那么必須為3*3 的產品另開新的箱子,新開的箱子數目等于3*3 的產品的數目除以4 向上取整;同時我們需要討論為3*3 的產品新開箱子時,剩余的空間可以盛放多少2*2 和1*1 的產品(這里如果有空間可以盛放2*2 的產品,我們就將它計入2*2 的空余空間,等到2*2 的產品全部裝完,如果還有2*2 的空間剩余,再將它們轉換成1*1 的剩余空間)。我們可以分情況討論為3*3 的產品打開的新箱子中剩余的空位,共為四種情況:第一種,3*3 的產品的數目正好是4 的倍數,所以沒有空余空間;第二種,3*3 的產品數目是4 的倍數加1,這時還剩5 個2*2 的空位和7 個1*1 的空位;第三種,3*3 的產品數目是4 的倍數加2,這時還剩3 個2*2 的空位和6 個1*1 的空位;第四種,3*3 的產品數目是4 的倍數加3,這時還剩1 個2*2 的空位和5 個1*1 的空位;處理完3*3 的產品,就可以比較一下剩余的2*2的空位和2*2 產品的數目,如果產品數目多,就將2*2 的空位全部填滿,再為2*2 的產品打開新箱子,同時計算新箱子中1*1 的空位,如果剩余空位多,就將2*2 的產品全部填入2*2的空位,再將剩余的2*2 的空位轉換成1*1 的空位;最后處理1*1 的產品,比較一下1*1的空位與1*1 的產品數目,如果空位多,將1*1 的產品全部填入空位,否則,先將1*1 的空位填滿,然后再為1*1 的產品打開新的箱子。

以上分析非本人原創,摘自書中;一下代碼思路完全來自書中,也可以說

代碼如下:#include <iostream>

#include <iostream>using namespace std;int main() {while(1){int a, b ,c ,d , e , f , x ,y,N;int u[4]={0, 5, 3, 1};cin>>a>>b>>c>>d>>e>>f;if (a == 0 && b == 0 && c == 0 && d == 0 && e == 0 && f == 0) break;N = f + e + d + (c + 3) / 4;y = 5*d + u[c % 4];if(b > y) N += (b - y + 8 ) / 9;x = 36 * N - 36 * f - 25 * e - 16 * d - 9 * c - 4 * b;if(a > x) N += ( a - x + 35 ) / 36;cout<<N<<endl;}return 0; }





與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

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

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