二分板子有问题?为啥会WA一个点

P1733 猜数(IO交互版)

@[lovesickman](/user/265978) `l=mid+1;`吧?
by 天南星魔芋 @ 2021-05-06 15:32:18


楼上正解
by 子丑 @ 2021-05-06 15:52:31


@[天南星魔芋](/user/399239) 好像不对,我是用的y总的二分板子
by Retired @ 2021-05-06 15:52:52


@[子丑](/user/428154) 不改变l<r的条件下,怎么改,能贴下代码吗?ORZ
by Retired @ 2021-05-06 15:54:48


@[lovesickman](/user/265978) 哦,我SB了
by 天南星魔芋 @ 2021-05-06 15:56:42


```cpp #include <cstdio> #include <iostream> using namespace std; int main() {int l=1,r=1000000000; for(;l<r;) { int mid=l+r+1>>1; cout<<mid<<endl; int x;cin>>x; if(x==0)return 0; else if(x==-1) l=mid; else r=mid-1; } cout<<l<<endl; return 0; } ```
by 天南星魔芋 @ 2021-05-06 15:56:52


@[lovesickman](/user/265978) 最后还要输一个 $l$。
by 天南星魔芋 @ 2021-05-06 15:57:24


@[天南星魔芋](/user/399239) 感谢大佬,是不是这个板子不太好啊
by Retired @ 2021-05-06 16:01:54


不是,是我太菜了
by 天南星魔芋 @ 2021-05-06 16:02:22


@[天南星魔芋](/user/399239) 懂了,如果待查询的是1,一直返回1,最后r=3,mid=2,r=mid-1,r=1,l=1,mid=1,查看直接退出,没有输出1。
by Retired @ 2021-05-06 16:16:46


| 下一页