为什么在二分答案的时候,终止条件是l<=r啊,l<r可以吗?

P2678 [NOIP2015 提高组] 跳石头

都可以,看个人习惯
by qinshi0308 @ 2023-07-11 16:26:23


就是代码有一些小区别
by qinshi0308 @ 2023-07-11 16:26:44


有时候容易弄混
by qinshi0308 @ 2023-07-11 16:26:57


@[wujingfey](/user/637073) 二分模板有三种写法: ```cpp l+1<r: int l=-1,r=1e9+1; while(l+1<r){ int mid=(l+r)/2; if(check(mid)){ l=mid; }else{ r=mid; } } ``` ```cpp l<=r: int l=0,r=1e9; while(l<=r){ int mid=(l+r)/2; if(check(mid)){ l=mid+1; }else{ r=mid+1; } } ``` ```cpp l<r: int l=0,r=1e9-1; while(l<r){ int mid=(l+r)/2; if(check(mid)){ l=mid+1; }else{ r=mid; } } ```
by liwenxi114514 @ 2023-07-17 09:20:49


@[wujingfey](/user/637073) 这三种代码是伪代码,要根据实际情况来写
by liwenxi114514 @ 2023-07-17 09:22:55


@[liwenxi110720](/user/661913) 谢谢大佬qwq
by wujingfey @ 2023-07-18 08:52:43


@[liwenxi110720](/user/661913) 请问大佬,这个模板是在 $ [0, 10^9] $内二分答案吗?
by lzy20091001 @ 2023-07-30 20:02:59


@[lzy20091001](/user/932039) 前两个是的,最后一个的r要改成1e9。
by liwenxi114514 @ 2023-07-30 22:51:34


@[lzy20091001](/user/932039) 自己写代码的时候,r设大一点,一般都没事。
by liwenxi114514 @ 2023-07-30 22:52:49


|