关于二分的实现方式导致答案错误
查看原帖
关于二分的实现方式导致答案错误
443675
紊莫turtle楼主2022/8/28 08:56

我在代码中采用了如下的二分:

int ans=-1,le=1,ri=m,mid;
	while(le<=ri)
	{
		mid=(le+ri)>>1;
		if(check(mid))
		{
			le=mid+1;
			ans=max(ans,mid);
		}
		else ri=mid-1;
	}

WA了#3。

但是改成这样的就过了??

int ans=-1,le=1,ri=m,mid;
	while(le<ri)
	{
		mid=(le+ri)>>1;
		if(check(mid))
		{
			le=mid+1;
		}
		else ri=mid;
	}
2022/8/28 08:56
加载中...