关于二分写法
  • 板块学术版
  • 楼主ducati
  • 当前回复3
  • 已保存回复3
  • 发布时间2020/10/30 11:43
  • 上次更新2023/11/5 09:32:05
查看原帖
关于二分写法
87064
ducati楼主2020/10/30 11:43

这题中,本蒟蒻提交了好几发,其中前两发T掉了(Time Limit Exceeded on Test 13):

int Binary_search()
{
	int l=1,r=n,ans;
	while (l<r)
	{
		int mid=(l+r)>>1;
		if (check(mid))  ans=mid,r=mid;
		else l=mid+1;
	}
	return ans;
}

然后改了改这段代码,就A了:

int Binary_search()
{
	int l=1,r=n;
	while (l<r)
	{
		if (l+1==r||l==r)
		{
			if (check(l))  return l;
			else return r;
		}
		int mid=(l+r)>>1;
		if (check(mid))  r=mid;
		else l=mid;
	}
}

为啥呀?不懂,二分到底怎么写?

我太菜了,到现在连二分都不会写……丢人……

2020/10/30 11:43
加载中...