CF407E k-d-sequence 线段树 / 糖丸题
首先我们注意到可以将 \(x\) 转化为 \(\lfloor \frac{x}{d} \rfloor\),然后我们可以将 d 转化为 \(1\) 的情况,\(d = 0\) 特判一下就好。
然后我们发现其实要求的是一个子区间使得:
- 整个子区间没有重复的数。
- \(\max a_i - \min a_i - ( r - l ) \le k\)。
这个应该是很简单的,然后于是就开始了我的糖丸操作。
首先我们枚举一个右端点 \(r\),于是我们要求的东西变成了 \(\max a_i - \min a_i + l \le k + r\),注意到右边是一个定值,所以我们只需要考虑到最小的 \(l\) 满足左边的条件就可以了,然后仍然注意到可以单调栈,然后用线段树套上去做,于是就完了。
感觉应该是很有操作的吧。

浙公网安备 33010602011771号