萌新关于这道题目的二分有些疑惑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