二分模板

第一个>=x的位置 l
while (l <= r)
{
int mid = (l + r) / 2;
if (lst[mid] < x) l = mid + 1;
else r = mid - 1;
}

最后一个=x的位置 l-1
while (l <= r)
{
int mid = (l + r) / 2;
if (lst[mid] <= x) l = mid + 1;
else r = mid - 1;
}

while(l<r)
如果为check成功 l=mid,else r=mid-1 mid=(l+r+1)/2
如果为check成功 r=mid,else l=mid+1 mid=(l+r)/2
保证得以结束

二分类型有交互 https://blog.csdn.net/asbbv/article/details/113963861

值的二分https://blog.csdn.net/asbbv/article/details/113962748

独立合并的二分https://ac.nowcoder.com/acm/problem/213483

全部评论

相关推荐

点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务