天天看點

linux嵌入式驅動-總線裝置驅動模型

   一個農夫想要合理的理财,他給你未來n天的每天支出(1<=n<=100000), 并計劃把這n天分成m個部分(1 <=m <=n)(每個部分的天數是連續的),要求求出這些部分裡花費最和最大值最小,輸出這個最大值。

100 400 300 100 500 101 400 可以這麼劃分(100 400) (300 100) (500) (101)(400) ,五個分組裡最大值是500,這個劃是最佳的了,因為在其他劃分裡肯定有部分是大于500的,如(100) (400 300) (100 500)(101) (400)。

分析:

       典型的二分,我們可以二分求最大值,上界是把所有的都分一組,也就是所有天數的和,下界是把每天當成一組的最大值。然後二分這個最大值,求解。

      關于如何判斷mid值。 我們依照mid值來分組,如果目前部分的和大于了mid值,那麼分組加一,在進行下一組的劃分。二分能夠找到最小的一個值使得恰好分成m組。