在昨天的日記裡,我們粗略的談了談二分。今天,我們來講講二分的乙個分支——二分答案。
從巨集觀的角度來講,二分答案分為整數二分和實數二分。二者的區別就是二分的區間是整數還是實數而已。
整數二分是二分答案的基礎,其形式多樣且較為簡單。下面以最小值最大為例,推薦一種筆者覺得很好的方法。
while
(l<=r)
else r=mid-1;
}
二分出來的結果就是ans
ansan
s。而且如果求最大值最小的話,只需要把l
ll和r
rr的修改互換一下即可。
實數二分昨天略講了一下,需要注意的地方注意到了,一般實數二分也就那樣了。這裡一樣以最小值最大為例,給出兩種模板。
方法1:固定精度法
while
(r-l>=eps)
----
----
----
----
----
-方法2:固定次數法
for(
int i=
1;i<=
100;i++
)
如果精度足夠高(如保留到題目要求後2−3
2-32−
3位),答案是l
ll是r
rr無太大所謂。
回到最巨集觀的角度,二分答案(無論是整數二分還是實數二分),難度都在check()
函式上。而check()
一般要配合其它演算法計算。
【題目】:有n
nn盞燈排成一列,其中有些燈開著,有些燈關著。小可可
希望燈是錯落有致的,他定義一列燈的狀態的不優美度為這些燈中最長的連續的開著或關著的燈的個數。小可可
最多可以按開關k
kk次,每次操作可以使該盞燈的狀態取反:原來開著的就關著,反之開著。現在給出這些燈的狀態,求操作後最小的不優美度。
【**】:
const
int n=
100100
;int l,r,mid,ans,n,k,tot;
int c[n]
,p[n]
;char s[n]
;inline
void
calc_p_and_tot()
inline
boolpd(
)if(tot<=k)
return
true;if
(ans<=k)
return
true
;return
false;}
inline
bool
check
(int mid)
intmain()
else l=mid+1;
}printf
("%d"
,ans)
;return0;
}
【題目】:kotori
有 n
nn 個可同時使用的裝置。第 i
ii 個裝置每秒消耗a
ia_i
ai個單位能量。能量的使用是連續的,也就是說能量不是某時刻突然消耗的,而是勻速消耗。也就是說,對於任意實數 ,在 k
kk 秒內消耗的能量均為k×a
ik\times a_i
k×ai
單位。在開始的時候第 i
ii 個裝置裡儲存著b
ib_i
bi個單位能量。
同時kotori
又有乙個可以給任意乙個裝置充電的充電寶,每秒可以給接通的裝置充能 p
pp 個單位,充能也是連續的,不再贅述。你可以在任意時間給任意乙個裝置充能,從乙個裝置切換到另乙個裝置的時間忽略不計。
kotori
想把這些裝置一起使用,直到其中有裝置能量降為 0
00。所以kotori
想知道,在充電器的作用下,她最多能將這些裝置一起使用多久。
【**】:
const
int n=
100100
;double l,r,mid,ans;
int a[n]
,b[n]
,p,n;
inline
bool
check
(double mid)
#define gc getchar()
#define g(c) isdigit(c)
inline
intread()
const
double eps=
1e-7
;int
main()
if(ans<=p)
l=0.0
;r=1e10
;while
(r-l>=eps)
printf
("%.6lf"
,l);
return0;
}
注意:精度不能再小,否則會tle
;r
rr不能再小,否則會wa
!!!
2019 08 18 日常總結
一本通1599 題意 在一年前贏得了小鎮的最佳草坪比賽後,fj 變得很懶,再也沒有修剪過草坪。現在,新一輪的最佳草坪比賽又開始了,fj 希望能夠再次奪冠。然而,fj 的草坪非常髒亂,因此,fj 只能夠讓他的奶牛來完成這項工作。fj 有 nn 只排成一排的奶牛,編號為 11 到 nn。每只奶牛的效率是...
5059日常總結
1.乙個函式的形參是const char 實參是可以是char 如果乙個函式的返回值是const char 不能用char 來接收返回值 2.為什麼沒有靜態的建構函式和析構函式?建構函式成員函式使用現有分配構造指定的物件 即存在this。static成員函式指定物件沒有儲存,因此沒有關聯的例項要構造...
2019 10 01日常總結
前言 今天是祖國母親70歲生日,請允許我向祖國母親說一聲 生日快樂!願您永遠繁榮昌盛 山清水秀!題意 松鼠的新家是一棵樹,前幾天剛剛裝修了新家,新家有n nn個房間,並且有n 1 n 1n 1根樹枝連線,每個房間都可以相互到達,且倆個房間之間的路線都是唯一的。天哪,他居然真的住在 樹 上。松鼠想邀請...