G - Smaller Sum Editorial by hirayuu_At

永続セグメント木による解法

(WIP)

本問題は、永続セグメント木を用いて解くこともできます。

まず、\(L=1\) としてよいです。この時の答えを \(f(R,X)\) とすると、与えられた \(L,R,X\) に対する答えは \(f(R,X)-f(L-1,X)\) と表せるためです。

与えられた \(A\) を座標圧縮します。そして、\(A\) の要素を \(i\) の昇順に見ていくと、オフラインであれば1点変更と区間和の取得ができる何らかのデータ構造に足し引きすれば求めたい値を取得できます。

しかし、ここでクエリがオンラインであることが重大な障壁となります。これを解決する方法は、過去のデータにアクセスできる、永続セグメント木などのデータ構造を使うことです。

posted:
last update: