二分总结
寒假前信誓旦旦地说要学习,结果到现在还没开始学...
步骤
-
确定一个区间,使得目标一定在区间中。
-
找到一个性质,满足:
(1)性质具有二段性
(2)答案是二段性的分界点
两类二分方法
第一类:ans(答案)是左侧区间的右端点
将[L,R]分为 [ L , M - 1 ] 和 [ M , R ] ,
如果mid落在左侧,说明ans仍在右侧区间 [ M , R ]
else 说明ans仍然在左侧区间 [ L , M - 1 ]
while(l
第二类:ans(答案)是右侧区间的左端点
将 [ L , R ] 分为 [ L , M ] 和 [ M + 1 , R ]
如果mid落在右侧,说明ans仍在左侧区间 [ L , M ]
else 说明ans仍然在右侧区间 [ M + 1 , R ]
while(l