公式

E - Set Add Query 解説 by nok0


毎クエリ愚直に加算すると実行時間に間に合いません。本問題では全てのクエリ終了後の \(A\) のみが求まればよいので、 \(i\) 番目の要素に対する加算をまとめて行うことを考えましょう。

\(i\) について、\(S\)\(i\) が追加されるタイミングを管理し、\(S\) から \(i\) が削除されるタイミングで \(i\) に対する加算をまとめて行いましょう。

\(i\)\(L_i\) 回目に追加され、\(j\) 回目に削除されたとします。このとき、\(L_i\) 回目のクエリ時の \(|S|\) から \(j-1\) 回目のクエリ時の \(|S|\) の合計を加算したいです。これは、各クエリ時の \(|S|\) を累積和で管理することで行えます。

最後のクエリ処理後に \(S\) に入っている要素に対する加算を忘れないように注意してください。

投稿日時:
最終更新: