P9994 [Ynoi Easy Round 2024] TEST_132

cxqghzj發表於2024-10-29

題意

給定平面上 \(n\) 個點,保證兩兩橫縱座標不同:

  • 對於所有橫座標為 \(x\) 的點,權值 \(v_i = v_i ^ 2\)
  • 詢問所有縱座標為 \(y\) 的點的權值之和。

\(n \le 10 ^ 6\)

Sol

根號分治,考慮對於所有橫座標相同的點分組。

對於修改操作,若當前修改的組大小 \(\le B\),那麼直接暴力修改,否則打上標記。

查詢時需要對於當前的縱座標,列舉所有在當前縱座標出現的 \(> B\) 的組。

標記的處理直接快速冪複雜度為 \(O(n \sqrt{n \log n})\)

考慮光速冪,由於不同的底數只有 \(n\) 個,因此考慮在二進位制上分塊,每塊 \(8\) 位,這樣預處理的複雜度變為了 \(2 ^ 8 \times 4\)

離線下來,然後對於每組預處理跑光速冪,複雜度 \(O(n \sqrt n)\)

但是實際上跑得比帶 \(\log\) 快不了多少。。。。

相關文章