区間の和を求めるアルゴリズム(区間の更新なし)
要素数 N の数列 \(\{a_0, a_1, a_2, \cdots, a_{N-1}\}\) が与えられた時に、区間 = S + a; }}// - S;}int main() { vector<int>a = {1, 2 ...
競プロでよく出る区間和問題の解き方まとめ
区間の更新がない場合
クエリ:\(O(1)\)
区間の更新が生じない場合は、累積和を用いることで高速にクエリを処理できます。
一次元の区間和累積和を用いることで、
前処理:\(O(N)\)クエリ:\(O(1)\)
で処理がで ...
Binary Indexed Tree (BIT) 総まとめ!区間加算や二次元BITまで
Binary Indexed Tree (またはフェニック木) は 数列 \(a_1, a_2, a_3, \cdots, a_n\) が与えられた時に、以下のようなことがそれぞれ \(O(log n)\) で実現できるデータ構造のこ ...
[AtCoder] ABC154 F – Many Many Paths (600点)
問題へのリンク
問題概要2次元の平面上で、以下のように関数 f(r,c) を定義する。
f(r,c) := (0,0)から(r,c)までの経路の個数
この時、以下を計算せよ。ただし、\(10^9+7 ...