社区讨论

求助关于wqs二分边界

学术版参与者 3已保存回复 17

讨论操作

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

当前回复
17 条
当前快照
1 份
快照标识符
@mjmlg99j
此快照首次捕获于
2025/12/26 16:12
2 个月前
此快照最后确认于
2025/12/28 08:05
2 个月前
查看原帖
题目P4694,应该是经典题目
我的代码写成如此,可以通过此题
CPP
while(l<=r) {
	int mid=l+r>>1;
	if(check(mid)<k) {
		l=mid+1;
	}
	else r=mid-1,tmp=ans+mid*k;
}
写成这样会WA最后一个hack:
CPP
while(l<=r) {
	int mid=l+r>>1;
	if(check(mid)<=k) {
		l=mid+1,tmp=ans+mid*k;
	}
	else r=mid-1;
}
印象里之前写wqs都会有些边界问题,求问:
  1. 写成这样才能过是这个题目的特殊原因吗,如果是,求一个说明
  2. 如果不是,我请求一种通用的写法,或者蒟蒻请求一篇博客

回复

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

正在加载回复...