競技プログラミング用 知識集積所

ABC419D - Substr Swap

最終更新:

sport_programming

- view
管理者のみ編集可


問題


必要知識

B以下レベルの内容は省略

考え方

i文字目は最終的にSとTで入れ替わっているのかそうでないのか、を各文字ごとに調べればよい。
しかし、各文字ごと各クエリごとループを回すと間に合わない。
そこで、「結局その場所は何回入れ替えるの?」を考えて、最後に奇数回のところだけ入れ替えることにする。

「結局その場所は何回入れ替えるの?」は、範囲にまとめて1加算したい、となれば階差数列※の出番。
1を足したい先頭に+1、1を足したい末尾の次に-1、で全操作分集計してから累積和を取れば、高速に求められる。

解答例


注意点


別解

ウィキ募集バナー