Loading

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\) 满足左边的条件就可以了,然后仍然注意到可以单调栈,然后用线段树套上去做,于是就完了。

感觉应该是很有操作的吧。

posted @ 2024-09-29 13:44  Alexande  阅读(13)  评论(0)    收藏  举报