玄学二分就解答
查看原帖
玄学二分就解答
1439183
Burning_Red楼主2025/7/31 17:37

我的第一个二分采用了这样的写法, Ton#3#4 80pts:

ll l = -3e8, r = 3e8, mid;
	while (l < r) {
		mid = (l + r) / 2;
		if (check(mid)) {
			l = mid + 1;
		} else {
			r = mid;
		}
	}
	cout << r - 1;

第二个AC了,仅仅是换了这种写法:

ll l = -3e8, r = 3e8, mid;
while (l <= r) {
		mid = (l + r) / 2;
		if (check(mid)) {
			l = mid + 1;
		} else {
			r = mid - 1;
		}
	}
	cout << r;

更玄学的是,我看了一份题解采用了这种写法可以AC,而我换上之后竟然Ton#7#9 80pts


	ll l = -3e8, r = 3e8, mid;
	while (l < r) {
		mid = (l + r) / 2;
		if (check(mid)) {
			l = mid;
		} else {
			r = mid - 1;
		}
	}
	cout << r;

为啥这么玄学啊?蒟蒻求解答

2025/7/31 17:37
加载中...