如果你wqs二分wa一两个点
查看原帖
如果你wqs二分wa一两个点
909961
nectarl楼主2024/1/2 20:24

如果你统计答案按照最后一次check的答案计算,需要注意最后一次检查对应的mid可能不是所需要的斜率,检查出来的答案并不是所需斜率范围内对应的答案,如果这次检查完二分也结束了,那答案就错了。

	while (l <= r) {
			ll mid = l + r >> 1;
			ll t=chek(mid,dp,num);
			if (t > m)l = mid + 1;
			else if (t < m)r = mid - 1;
			else {
				r = mid;
				break;
			}
		}
		chek(r,dp,num);

这是我的ac代码,以二分结束后的r为正确斜率。如果最后一行不加会错两个点

2024/1/2 20:24
加载中...