Ex - Range Harvest Query Editorial by kyopro_friends
この問題は座標圧縮+遅延セグメント木で解けます。
ノードは「対応する区間で1日に増える実の個数」と「対応する区間ですでに収穫された実の個数」を持ちます。作用素は「最後に収穫が行われた日付」を持ちます。
クエリに対する答えは、「1日で増える個数×収穫日の日付-すでに収穫された個数」となります。
座標圧縮により残る座標は \(O(Q)\) 個であるため、全体で \(O(Q\log Q)\) で解けます。
実装上は、作用素の集合がモノイドとなるように、恒等写像の扱いに注意してください。
posted:
last update: