木棒切割問題首先需要理解,是否可以有多個解,就來說本問題只有唯一解6,做本問題時可以考慮問題只有一解的情況
那麼可以採用計數的方法,判斷在何時取得七段相同的解,問題轉換為二分法的常規寫法。
注意本題的mid是在函式的最後取中的,因為可能會遇到只要一段的
**如下
#include
#include
using
namespace std;
intsolve
(int a,
int n,
int right,
int k)
//printf("%d",num);
if(num==k)
return mid;
else
if(numright=mid;
else
left=mid;
mid=
(left+right)/2
;}return0;
}int
main()
printf
("%d"
,solve
(a,n,max,k));
}
二分 木棒切割
問題 給出n根木棒,長度均已知,現在希望通過切割他們來得到至少k段長度相等的木棒 長度必須為整數 問這些長度相等的木棒最長有多長?這一題可以利用二分的思想來求解,最短是0 left 最長為最長木棒的長度 right 不斷對這個區間進行二分,且每次分完計算所能得到的木棒的條數,如果相同則返回,否則繼續...
《演算法筆記》木棒切割問題P134
目前網路上大部分 均沒有考慮k 1時,最長長度l即為最長的木棒長度。這是因為,我們在將求解最後乙個滿足k k的問題轉換為求解第乙個滿足k給出n根木棒,長度均已知,現在希望通過切割它們來得到至少 k 段長度相等的木棒 長度必須是整數 問這些長度相等的木棒最長能有多長?如果長度相等的木棒的長度l越長,那...
1001木棒問題
簡單題義 往機器裡放木棒,第乙個用一分鐘,第二個若比第乙個長且重,則不耗時,否則耗時,現投入t根木棒求全部放入的最短時間,仍然是貪心演算法。思路 長度和重量兩個資料,用結構體,將資料排序,另外還用到了動態規劃,哎呦,感覺都不懂啊 感想 看課件的時候,明明方法和函式都寫出來了,還不知道怎麼寫主函式,也...