8pts 的一种很离谱的挂法
查看原帖
8pts 的一种很离谱的挂法
448887
cancan123456楼主2024/6/14 21:18

错误示范:

int ans = 0, l = 1, r = n - x + 1;
while (l <= r) {
	int mid = (l + r) / 2;
	Info res = query(1, mid, mid + x - 1);
	if (res.tmax >= x) {
		ans = mid;
		r = mid - 1;
	} else {
		l = mid + 1;
	}
}
printf("%d\n", ans);
if (ans != 0) {
	cover(1, ans, ans + x - 1, 1);
}

正确示范:

int ans = x - 1, l = x, r = n;
while (l <= r) {
	int mid = (l + r) / 2;
	Info res = query(1, 1, mid);
	if (res.tmax >= x) {
		ans = mid;
		r = mid - 1;
	} else {
		l = mid + 1;
	}
}
printf("%d\n", ans - x + 1);
if (ans != x - 1) {
	cover(1, ans - x + 1, ans, 1);
}
2024/6/14 21:18
加载中...