INT C [ 50005 ]; // 元の配列とフェンウィックツリーに対応する 整数 lowbit(INT X){ 戻り X&( - X)。 } ボイドアップデータ(INT I、INT K){ // K Iの位置に追加 しばらく(I <= N-){ C [I] + = K。 I + = lowbit(I)。 } } INT getsum(INT I){ // 求A [1 - I]的和 INT RES = 0 。 一方、(I> 0 ){ RES + = C [i]は、 I - = lowbit(I)。 } リターンのres; }