kotori的裝置 實數域上二分答案

2021-10-22 14:16:46 字數 804 閱讀 8315

本題可以採用實數域上二分答案進行求解,正常的實數域二分模板,那麼如何判斷呢.我是先在輸入時變算好了該裝置可以堅持的時間t,將二分的mid值與t進行比較,如果t>=mid,那麼對於該裝置來說他可以不充電就執行mid時間,如果tmid那麼mid值就無法滿足,所以讓r=mid,反之讓l=mid…二分區間l=0,r=1e10,之前我讓r=1e5有乙個樣例過不了,還有就是如果最後l=r=1e10那麼說明可以這些裝置無限使用,就輸出-1.

還有題目精度是1e-4,所以我們設定二分精度為1e-6…

#include

#include

#define eps 1e-6

using

namespace std;

const

int n=

1e5+10;

int n,p;

struct

machines[n]

;int

check

(double mid)

if(cnt>mid)

return0;

return1;

}int

main()

double l=

0,r=

1e10

;while

(r-l>eps)if(

abs(l-

1e10

)<=eps)

cout<<-1

cout

}

二分思想(整數數列上的二分 實數域上的二分)

其實對於二分來說,我們可以分為兩類 1 整數域上的二分 2 實數域上的二分 但是總的二分的條件都是一樣的 需要序列具有單調性。1 整數域上的二分,分三步 其中mid最好是 1 而不是 2,因為 1 是向下取整,而 2是向0取整,在負數時很有用 1 通過分析具體問題,確定左右半段哪乙個是可行區間,以及...

二分實數總結

二分這個演算法就不說了,直接上乙個題目吧,二分實數看演算法競賽指南上的題解勉強看懂,這題主要是讓我求乙個乙個陣列之中大於l長度的最大平均數。書上大概都有,我就簡單說下單調性吧。任意數列減去自己的平均數後總和為0如果乙個數字小於平均值的話,減去這個數字後總和將會大於0,而如果大於平均值的話總和將會變成...

漫話二分(上)

如果真的叫乙個課講的好的老師來說二分,課程可以變得相當有意思。每次回我們高中時我都講了很多次課,我最喜歡聊到的話題之一就是二分。從猜數遊戲引入二分查詢有序佇列中的指定元素,然後提出一些標準的有序佇列二分搜尋的實際應用,比如解方程x x 100一類的問題。緊接著提出二分的各種有趣的變形,例如如何在有序...