간단한 정수 문제

주제 링크 : https://www.acwing.com/problem/content/248/

 

생각 : 새로운 배열 B, 초기 모두 0을 각각 "L C D는 r"에 대해, 수 2 [L] + = D, B [R + 1] - = D;

          트리에 배열 될 수만큼 배열의 유지 보수 등의 b를 프리픽스 배열 및 B는, 어레이 A의 값에 대응 증가한

사용법 #include <iostream> 
#INCLUDE <알고리즘> 
#INCLUDE <문자열> 
#INCLUDE <CString을> 
#INCLUDE <cstdio> 
#INCLUDE <cmath> 
#INCLUDE <지도> 
#INCLUDE <큐> 
사용 스페이스 성병; 
이 [200005], B [200,005]을 int로; 
INT 않음; 
부가 공극 (INT의 X, Y의 INT) 
{ 
    대 (; X <= N이고; X 및 X + = -x) 
        B [X] + = Y; 
    반환; 
} 
INT는 (의 INT (X))를 요청 
{ 
    INT ANS = 0; 
    대 (; X, X 축, X = -x) 
        ANS는 + B = [X]; 
    ANS를 반환; 
} 
INT의 main () 
{ 
    INT의 m; 
    scanf와 ( "% d 개 %의 D", 및 N, m); 
    난 = N <; 위해 (ⅰ = 1 int로;
    (M--) 동안 
        숯 C; 
        getchar가 (); 
        scanf와 ( "%의 C", 및 C); 
        경우 (c == 'Q') 
        { 
            w INT; 
            scanf와 ( "%의 D ', w); 
            의 printf ( "% D \ 없음"() 요청 승 + A [w]); 
        } 
        다른 
        { 
            INT의 L, R, w; 
            scanf와 ( "% D % D % D ', L, R, W); 
            (L, W)에 추가; 
            추가 (R + 1, -w); 
        } 
    } 
    0을 리턴; 
}

  

추천

출처www.cnblogs.com/zcb123456789/p/11370509.html