木材加工 解題報告

2021-10-12 18:33:23 字數 1389 閱讀 6637

木材廠有一些原木,現在想把這些木頭切割成一些長度相同的小段木頭(木頭有可能有剩餘),需要得到的小段的數目是給定的。當然,我們希望得到的小段木頭越長越好,你的任務是計算能夠得到的小段木頭的最大長度。木頭長度的單位是cmcm

cm。原木的長度都是正整數,我們要求切割得到的小段木頭的長度也是正整數。

例如有兩根原木長度分別為11

1111

和21

2121

,要求切割成到等長的6

66段,很明顯能切割出來的小段木頭長度最長為555.

第一行是兩個正整數n

nn和kkk(

1≤n≤

100000,1

≤k

≤100000000

)(1 ≤ n ≤ 100000,1 ≤ k ≤ 100000000)

(1≤n≤1

0000

0,1≤

k≤10

0000

000)

,n

nn是原木的數目,k

kk是需要得到的小段的數目。

接下來的n

nn行,每行有乙個1

11到100000000

100000000

100000

000之間的正整數,表示一根原木的長度。

能夠切割得到的小段的最大長度。如果連1cm

1cm1c

m長的小段都切不出來,輸出「0」

「0」「0

」。

3 7

232124

456

二分切割的長度,用這個長度去切木頭,看看可以切多少段,當段數小於數目時,就說明切的長度太長,需要縮小,則把 r

\rm r

r 賦值為mid

\rm mid

mid,同理,當段數大於數目時,就說明切的長度太短,需要放大,則把 l

\rm l

l 賦值為mid

\rm mid

mid。

int l=

0,r=

100000

;//細節,如果這裡l設為1,那麼當切不了的時候,就會輸出1。所以要用0。

while

(l+1

< r)

提交**位址

提交**位址(有改動)

注:在做第二道題時,可以把繩子擴大100倍再進行二分答案。記得看好許局型別,什麼時候用double,什麼時候用int。

openjudge 木材加工

總時間限制 1000ms 記憶體限制 65536kb 描述 木材廠有一些原木,現在想把這些木頭切割成一些長度相同的小段木頭,需要得到的小段的數目是給定了。當然,我們希望得到的小段越長越好,你的任務是計算能夠得到的小段木頭的最大長度。木頭長度的單位是厘公尺。原木的長度都是正整數,我們要求切割得到的小段...

Problem C 木材加工

problem c 木材加工 time limit 1000ms memory limit 65536k total submit 48 accepted 20 description 問題描述 木材廠有一些原木,現在想把這些木頭切割成一些長度相同的小段木頭 木頭有可能有剩餘 需要得到的小段的數目是...

C C 木材加工

木材廠有一些原木,現在想把這些木頭切割成一些長度相同的小段木頭,需要得到的小段的數目是給定了。當然,我們希望得到的小段越長越好,你的任務是計算能夠得到的小段木頭的最大長度。木頭長度的單位是厘公尺。原木的長度都是正整數,我們要求切割得到的小段木頭的長度也要求是正整數。第一行是兩個正整數n和k 1 n ...