1

これは非常に些細なことかもしれませんが、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]);

期待した結果が得られません..ありがとう。

4

0 に答える 0