日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

装箱---一个工厂制造的产品形状都是长方体,它们的高度都是 h,长和宽都相等,一共有六个型号,他们的长宽分别为 1*1, 2*2, 3*3, 4*4, 5*5, 6*6.

發(fā)布時(shí)間:2024/9/21 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 装箱---一个工厂制造的产品形状都是长方体,它们的高度都是 h,长和宽都相等,一共有六个型号,他们的长宽分别为 1*1, 2*2, 3*3, 4*4, 5*5, 6*6. 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

問題描述

一個(gè)工廠制造的產(chǎn)品形狀都是長(zhǎng)方體,它們的高度都是 h,長(zhǎng)和寬都相等,一共有六個(gè)型號(hào),他們的長(zhǎng)寬分別為 1*1, 2*2, 3*3, 4*4, 5*5, 6*6.? 這些產(chǎn)品通常使用一個(gè)? 6*6*h? 的長(zhǎng)方體包裹包裝然后郵寄給客戶。因?yàn)猷]費(fèi)很貴,所以工廠要想方設(shè)法的減小每個(gè)訂單運(yùn)送時(shí)的包裹數(shù)量。他們很需要有一個(gè)好的程序幫他們解決這個(gè)問題從而節(jié)省費(fèi)用。現(xiàn)在這個(gè)程序由你來設(shè)計(jì)。

輸入數(shù)據(jù)

輸入文件包括幾行,每一行代表一個(gè)訂單。每個(gè)訂單里的一行包括六個(gè)整數(shù),中間用空

格隔開,分別為 1*1 至 6*6 這六種產(chǎn)品的數(shù)量。輸入文件將以 6 個(gè) 0 組成的一行結(jié)尾。

輸出要求

除了輸入的最后一行 6 個(gè) 0 以外,輸入文件里每一行對(duì)應(yīng)著輸出文件的一行,每一行輸

出一個(gè)整數(shù)代表對(duì)應(yīng)的訂單所需的最小包裹數(shù)。

輸入樣例

0 0 4 0 0 1?

7 5 1 0 0 0?

0 0 0 0 0 0?

輸出樣例

2?

1?

?

問題分析:

由題意可知,可

(1)每一個(gè)6×6的產(chǎn)品都必須要一個(gè)箱子來裝,且每個(gè)箱子剛好沒有空位子;

(2)每一個(gè)5×5的產(chǎn)品也必須要一個(gè)箱子來裝,且每一個(gè)裝5×5的?箱子都有11個(gè)1×1的產(chǎn)品的空位子(因?yàn)槭O乱?guī)格的 產(chǎn)品裝不下);

(3)每一個(gè)4×4的產(chǎn)品也必須要一個(gè)箱子來裝且每一個(gè)裝4×4的?箱子剩下5個(gè)2×2的產(chǎn)品的空位子。(ps:這里優(yōu)先考慮裝2×2大規(guī)格的產(chǎn)品,當(dāng)然這里也可以剩下20個(gè)1×1的產(chǎn)品的空位子,這里先不考慮,如果沒有2×2規(guī)格的產(chǎn)品,再考慮1×1的產(chǎn)品,后面我會(huì)統(tǒng)一計(jì)算1×1的空位子的個(gè)數(shù))

(4)對(duì)于3×3的產(chǎn)品,由于每4個(gè)3×3的產(chǎn)品才能裝滿一個(gè)箱子,所以對(duì)于用一個(gè)箱子來裝3×3的產(chǎn)品時(shí),空余的位子的情況比較復(fù)雜,一共分為四種情況:

? ? ? ? ? ①3×3的產(chǎn)品個(gè)數(shù)a3剛好是4的倍數(shù),這樣就沒有空位子

? ? ? ? ? ②3×3的產(chǎn)品個(gè)數(shù)a3是4的倍數(shù)還多了1個(gè)3×3的產(chǎn)品,這時(shí)需要箱子的數(shù)量為(a3/4)向上取整,即(a3+3)/4個(gè)箱子,且這種不滿的箱子都留下了5個(gè)2×2的空位子以及7個(gè)1×1的空位子(其余的規(guī)格不適合填裝)

? ? ? ? ? ③3×3的產(chǎn)品個(gè)數(shù)a3是4的倍數(shù)還多了2個(gè)3×3的產(chǎn)品,這時(shí)需要箱子的數(shù)量為(a3/4)向上取整,即(a3+3)/4個(gè)箱子,且這種不滿的箱子都留下了3個(gè)2×2的空位子以及6個(gè)1×1的空位子(其余的規(guī)格不適合填裝)

? ? ? ? ?④3×3的產(chǎn)品個(gè)數(shù)a3是4的倍數(shù)還多了3個(gè)3×3的產(chǎn)品,這時(shí)需要箱子的數(shù)量為(a3/4)向上取整,即(a3+3)/4個(gè)箱子,且這種不滿的箱子都留下了1個(gè)2×2的空位子以及5個(gè)1×1的空位子(其余的規(guī)格不適合填裝)

(4)對(duì)于2×2的產(chǎn)品,每9個(gè)2×2產(chǎn)品才能填滿一個(gè)箱子,根據(jù)以上所有情況留下的2×2的空位子數(shù)量x,與2×2的產(chǎn)品的數(shù)量a2進(jìn)行比較,如果2×2的產(chǎn)品的數(shù)量多于2×2空位子個(gè)數(shù),則根據(jù)剩下的2×2產(chǎn)品的數(shù)量來繼續(xù)添加箱子的個(gè)數(shù),每9個(gè)2×2產(chǎn)品才能填滿一個(gè)箱子,這時(shí)需要再添加箱子的數(shù)量為(a2-x)/9向上取整,即(a2-x+8)/9個(gè)箱子,對(duì)于一個(gè)箱子不足9個(gè)2×2產(chǎn)品的,用1×1的產(chǎn)品來填滿。如果2×2的產(chǎn)品的數(shù)量小于2×2空位子個(gè)數(shù),直接將2×2的產(chǎn)品填入空位子,剩下的空位子全部用1×1的產(chǎn)品來填。

(5)對(duì)于1×1的產(chǎn)品,每36個(gè)1×1的產(chǎn)品才能裝滿一個(gè)箱子,根據(jù)以上所有情況留下的1×1的空位子數(shù)量y,與1×1的產(chǎn)品的數(shù)量a1進(jìn)行比較,如果1×1的產(chǎn)品的數(shù)量多于1×1空位子個(gè)數(shù),則根據(jù)剩下的1×1產(chǎn)品的數(shù)量來繼續(xù)添加箱子的個(gè)數(shù),每36個(gè)1×1產(chǎn)品才能填滿一個(gè)箱子,這時(shí)需要再添加箱子的數(shù)量為(a1-y)/36向上取整,即(a1-y+35)/36 個(gè)箱子

綜上可以得出最少需要箱子的個(gè)數(shù)

c語言源碼:

#include<stdio.h> #include<stdlib.h>int main(){int x,y,cnt; //x為2×2的空位子數(shù)量,y為1×1的空位子數(shù)量int a1,a2,a3,a4,a5,a6; //6個(gè)包裹的大小int c[4]={0,5,3,1}; //當(dāng)有3×3的時(shí),則2×2的空位子數(shù)量可能的個(gè)數(shù),這是3×3到2×2的空位子數(shù)量的映射while(1){cnt=0;scanf("%d%d%d%d%d%d",&a1,&a2,&a3,&a4,&a5,&a6);if(a1==0&&a2==0&&a3==0&&a4==0&&a5==0&&a6==0)break;cnt+=a6+a5+a4+(a3+3)/4; //a6和a5和a4以及(a3+3)/4都分別占用一個(gè)箱子,(a3+3)/4是對(duì)a3每滿4向上取整的個(gè)數(shù)x=5*a4+c[a3%4]; //這是計(jì)算2×2空位子的總個(gè)數(shù),每一個(gè)a4裝的箱子都有著5個(gè)2×2的空位子+每一個(gè)a3裝的箱子可能存在2×2的空位子數(shù)量if(a2>x) //計(jì)算a2的數(shù)量是否大于其空位子的數(shù)量cnt+=(a2-x+8)/9; //計(jì)算a2填滿空位子后剩余的a2所需要的箱子的個(gè)數(shù)。(a2-x+8)/9是對(duì)a2每滿9向上取整的箱子個(gè)數(shù)y=36*cnt-36*a6-25*a5-16*a4-9*a3-4*a2; //計(jì)算剩余1×1空位子的個(gè)數(shù)if(a1>y)//計(jì)算a1的數(shù)量是否大于其空位子的數(shù)量cnt+=(a1-y+35)/36;//計(jì)算a1填滿空位子后剩余的a1所需要的箱子的個(gè)數(shù).(a1-y+35)/36是對(duì)a1每滿36向上取整的箱子個(gè)數(shù)printf("%d\n",cnt);} return 0; }

?

總結(jié)

以上是生活随笔為你收集整理的装箱---一个工厂制造的产品形状都是长方体,它们的高度都是 h,长和宽都相等,一共有六个型号,他们的长宽分别为 1*1, 2*2, 3*3, 4*4, 5*5, 6*6.的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。