これは非常に些細なことかもしれませんが、2 次元バイナリ インデックス ツリーを初期化する方法がわかりません。通常、すべての値を 0 にリセットします。しかし、配列の値 (1、2、3、4 など) でツリーを初期化するにはどうすればよいでしょうか。私は次の更新機能を使用していますが、そうすると
void update(int p, int v) // p is the index, v is the value to be added
{
for (int i=p; i<=MAXBIT; i+=i&-i)
{
bit[i][0] += v*(i-p+1);
bit[i][1] += v;
}
}
for(i=0;i<n;i++)
update(i+1,array[i]);
期待した結果が得られません..ありがとう。