木材廠有一些原木,現在想把這些木頭切割成一些長度相同的小段木頭(木頭有可能有剩餘),需要得到的小段的數目是給定的。當然,我們希望得到的小段木頭越長越好,你的任務是計算能夠得到的小段木頭的最大長度。木頭長度的單位是cmcmcm。原木的長度都是正整數,我們要求切割得到的小段木頭的長度也是正整數。
例如有兩根原木長度分別為111111
和21
2121
,要求切割成到等長的6
66段,很明顯能切割出來的小段木頭長度最長為555.
第一行是兩個正整數nnn和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是需要得到的小段的數目。
接下來的nnn行,每行有乙個1
11到100000000
100000000
100000
000之間的正整數,表示一根原木的長度。
能夠切割得到的小段的最大長度。如果連1cm1cm1c
m長的小段都切不出來,輸出「0」
「0」「0
」。
3 7二分切割的長度,用這個長度去切木頭,看看可以切多少段,當段數小於數目時,就說明切的長度太長,需要縮小,則把 r232124
456
\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 ...