社区讨论

关于二分

学术版参与者 8已保存回复 10

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
10 条
当前快照
1 份
快照标识符
@lo3hmjsd
此快照首次捕获于
2023/10/24 06:47
2 年前
此快照最后确认于
2023/10/24 06:47
2 年前
查看原帖
我在 P7167 里写了两个二分,一个过了,一个没过。
想问问这两个二分哪里有区别。
CPP
//AC
int l = i + 1, r = n + 1, mid;
		while(l < r)
		{
			mid = (l + r) >> 1;
			if(RMQ(i + 1, mid) <= d[i]) l = mid + 1;
			else r = mid;
		}
CPP
//WA
int l = i + 1, r = n + 1, mid, ans = 0;
		while(l <= r)
		{
			mid = (l + r) >> 1;
			if(RMQ(i + 1, mid) <= d[i]) l = mid + 1, ans = mid;
			else r = mid - 1;
		}

回复

10 条回复,欢迎继续交流。

正在加载回复...