問題:給出n根木棒,長度均已知,現在希望通過切割他們來得到至少k段長度相等的木棒(長度必須為整數),問這些長度相等的木棒最長有多長?
這一題可以利用二分的思想來求解,最短是0(left),最長為最長木棒的長度(right),不斷對這個區間進行二分,且每次分完計算所能得到的木棒的條數,如果相同則返回,否則繼續。
具體**如下:這裡假定有三根木棒,長度分別為10,24,15
#include #include using namespace std;
int solve(int a,int left,int right,int x)
if(num==x)
return mid;
else if(numright=mid;
else
left=mid;
}}int main()
; scanf("%d",&x);
printf("%d\n",solve(a,0,a[2],x));
return 0;
}
繩子切割 二分查詢
題目描述 有n條繩子,它們的長度為li li 1000 如果從它們中切割出k條長度相同的繩子的話,這條繩子每條最長能有多長?答案保留到小數點後2位。輸入輸入包含兩行,第一行有兩個整數n和k,n代表n條繩子,k代表切割出的長度。4 11 8 02 7.43 4.57 5.39 輸出輸出能切割出最長的長...
二分查詢 切割問題
工地現有 n 根鋼管,第 i 根鋼管的長度為 a i 現在想用這 n 根鋼管來做乙個支撐用的柱子。我麼可以切割這些鋼管成為更短的鋼管,但是不能縫合兩根鋼管。為了安全起見,柱子必須用 至少 k 根長度相同的鋼管加上混凝土製成,並且要求鋼管長度必須為 整數。這個柱子最高能建成多高 鋼管可以有剩餘 輸入格...
4 5木棒切割問題
木棒切割問題首先需要理解,是否可以有多個解,就來說本問題只有唯一解6,做本問題時可以考慮問題只有一解的情況 那麼可以採用計數的方法,判斷在何時取得七段相同的解,問題轉換為二分法的常規寫法。注意本題的mid是在函式的最後取中的,因為可能會遇到只要一段的 如下 include include using...