关于二分
查看原帖
关于二分
198719
洛璟楼主2021/1/19 21:12

萌新关于这道题目的二分有些疑惑qwq 这是正确的写法:

    while (l < r)
    {
        int mid = (l + r) >> 1;
        if (check(mid) == 1) l = mid + 1;
        else r = mid;
    }

这是爆炸的写法:

while (l < r)
    {
        int mid = (l + r) >> 1;
        if (check(mid) == 1) l = mid;
        else r = mid - 1;
    }

萌新不知道为什么正确的是正确的

按我的思路来讲应该是如果check出来是正确的,说明这可能是正确的答案,但正确的写法中直接舍弃此答案,因此不明白qwq

2021/1/19 21:12
加载中...