기술을 차단

나무 블록 배열 작업의 최적화.

$의 O (1) $ 단일 지점을 수정 $ O (\의 SQRT {N}) $ 쿼리 간격.

CONST INT의 1E6 + N = 10, S = 400; 
INT S1 [N], S2 [N]; 
공극 부가 INT (X, INT의 V) { 
	S1 [X] = V +; 
	S2의 [X / S] + = V; 
} 
INT QRY INT (X) { 
	INT ANS = 0; 
	위한은 (i = X / S *에서의 S를 나타내는 int 난의 X를 = <; I ++) ANS = S1 + [I]; 
	대해 INT (X = I / S-1, I> = 0; --i) ANS + S2 = [I]; 
	ANS를 반환; 
}

$의 O (1) $ 쿼리는 $ O (\의 SQRT {N}) 간격 변형 달러.

공극 부가 INT (X, V를 INT) { 
	위해 (나는 = X / S *에서의 S를 나타내는 int 난의 X를 = <; I ++) S1 [내가] + = V; 
	S2를 [내가] + = v 및 (; 나는> = 0 --i 난 = X / S-1 INT); 
} 
INT QRY INT (X) { 
	리턴 S1 [X] + S2의 [X / S]; 
}

 

추천

출처www.cnblogs.com/uid001/p/11261088.html