[3]フェンウィックツリーテンプレート1(クエリを変更するためのシングルポイント範囲)

 

 

書式#include <iostreamの> 
の#include <cstdioを>
 使用して 名前空間はstdを、
int型 PD、C [ 500001 ]、[ 500001 ]、X、Y、K、N、M。
INT lowbit(INT XX)
{ 
    戻り XX& - XX。
} 
ボイド更新(INT XX、INT YY)
{ 
    一方(XX <= N)
    { 
        C [XX] + = YY。
        XX + = lowbit(XX)。
    } 
} 
int型 getsum(INT XX)
{ 
    int型合計= 0 ;
    一方、(XX> 0 
    { 
        合計 + = C [XX]。
        XX - = lowbit(XX)。
    } 
    戻り値の和。
} 
int型のmain()
{ 
    CIN >> N >> M。
    以下のためにint型 i = 1 ; iが<= N; iは++ 
    { 
        CIN >> [I]。
        アップデート(I、[I])。
    } 
    のためにint型 I = 1 ; I <= M; iは++ 
    { 
        CIN >>PD;
        もし(PD == 1 
        { 
            CIN >> X >> K。
            アップデート(X、K)。
        } 
        もし(PD == 2 
        { 
            CIN >> X >> Y。
            COUT << getsum(Y)-getsum(X- 1)<< ENDL。
        } 
    } 
    戻り 0 
}

                  夏の十四日までに2019年9月9日

おすすめ

転載: www.cnblogs.com/north-star/p/11489354.html