https://atcoder.jp/contests/abc157/submissions/13434967
- BITで点加算と範囲取得が
- BITを複数本もつデータ構造に慣れる
文字列の長さがでクエリ数があることから、合計を求めるクエリ1個につきまたはで処理したいという気持ちになる。そこで、Binary Indexed Treeを使う。BIT1個だと実現できないが、アルファベットaからzまで全部で26個のBITを用意すれば実現できることに気づけば簡単。BITを使ってクエリ毎に任意範囲の各文字の合計を取得したり、クエリ毎に任意要素の各文字の個数を変更(1か0)すれば、計算量はになる。