題意
給定平面上 \(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\) 快不了多少。。。。