qoj6509. Not Another Range Query Problem

Rainbow_qwq發表於2024-08-15

從整體考慮:若詢問區間為 \([1,r]\),則我們先假設欽定每次操作為 刪去每個連續段最左邊的位置,用連結串列模擬出每個數被刪除的時間,查詢即為 \([1,r]\) 中有幾個沒在前 \(k\) 時間內被刪除的數,是二維數點。

若詢問區間為 \([l,r]\),則這樣做可以會導致區間中的第一個連續段沒有被操作。

但我們可以考慮差分:欽定每次操作為 刪去每個連續段最右邊的位置,查詢這樣操作 \(k\) 次在 \([1,l-1]\) 中還剩多少數,然後用 \([1,r]\) 的答案減去它,得到 \([l,r]\) 的答案。

https://qoj.ac/submission/519684

相關文章