qoj6509. Not Another Range Query Problem

从整体考虑:若询问区间为 \([1,r]\),则我们先假设钦定每次操作为 删去每个连续段最左边的位置,用链表模拟出每个数被删除的时间,查询即为 \([1,r]\) 中有几个没在前 \(k\) 时间内被删除的数,是二维数点。

若询问区间为 \([l,r]\),则这样做可以会导致区间中的第一个连续段没有被操作。

但我们可以考虑差分:钦定每次操作为 删去每个连续段最右边的位置,查询这样操作 \(k\) 次在 \([1,l-1]\) 中还剩多少数,然后用 \([1,r]\) 的答案减去它,得到 \([l,r]\) 的答案。

https://qoj.ac/submission/519684

posted @ 2024-08-15 00:29  Rainbow_qwq  阅读(80)  评论(0编辑  收藏  举报