-
[BOJ] 수열과 쿼리 13PS/BOJ 2020. 10. 23. 22:43
13925번: 수열과 쿼리 13
길이가 N인 수열 A1, A2, ..., AN이 주어진다. 이때, 다음 쿼리를 수행하는 프로그램을 작성하시오. 1 x y v: Ai = (Ai + v) % MOD를 수행한다. (x ≤ i ≤ y) 2 x y v: Ai = (Ai × v) % MOD를 수행한다. (x ≤ i ≤ y
www.acmicpc.net
알고리즘: Segtree, Lazy propagation
시간복잡도: $O((N+M)logN)$
1, 2번 쿼리를 보면 구간에 있는 모든 원소에 특정 값을 연산한다.
따라서, Lazy propatagion을 써야한다는 것을 알 수 있다.'
1, 2번 쿼리를 통해 $a\rightarrow ax+b$로 바꼈다고 생각해보자
여기다가 다시 p를 곱하고 q를 더하면,
$ax+b\rightarrow p(ax+b)+q=pax+(pb+q)$
$a\rightarrow pa,\ b\rightarrow pb+q$
a = lazy1, b = lazy2로 관리해주되,
위의 식처럼 곱하는 연산에서는 a, b 값 모두 변화시켜줘야 한다는 점을 유의해야 한다.
'PS > BOJ' 카테고리의 다른 글
[BOJ] 5639 이진 검색 트리 (0) 2022.07.18 [BOJ] 단계별로 풀어보기 - 최단 경로 (0) 2021.06.15 [BOJ] 13545 수열과 쿼리 0, 13550 수열과 쿼리 7 (0) 2020.10.23 [BOJ] 13546 수열과 쿼리 4 (0) 2020.10.22 [BOJ] 16979 수열과 쿼리 23 (0) 2020.09.12