[4] 2 템플릿 펜윅 트리 (변형 한 점 평가 부)

 

 

 

 

 

 

사용법 #include <iostream> 
#INCLUDE <cstdio>
 사용  스페이스 성병;
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; 내가 ++ ) 
    { 
        CIN >> A [I]; 
        업데이트 (I, A [i]를 -a [I- 1 ]); 
    } 
    에 대해 ( int로 I = 1 ; I <= m; 내가 ++ ) 
    {
        CIN >> PD;
        경우 (PD의 == 1 ) 
        { 
            CIN >> X Y >> >> K; 
            업데이트 (X, K); 
            업데이트 (Y + 1 - K); 
        } 
        경우 (PD의 == 2 ) 
        { 
            CIN >> X; 
            COUT << getsum (X) << ENDL; 
        } 
    } 
    반환  0 ; 
}

                                                           여름의 14 일에 의해 2019년 9월 9일

추천

출처www.cnblogs.com/north-star/p/11489363.html