[BOJ 23888] 백준 23888번 - 등차수열과 쿼리
GBS Coding Contest 2021 풀이 | ||
---|---|---|
A | [BOJ 23885] 비숍 투어 | |
B | [BOJ 23886] 알프수 | |
C | [BOJ 23887] 프린트 전달 | |
D | [BOJ 23888] 등차수열과 쿼리 | |
E | [BOJ 23889] 돌 굴러가유 | |
F | [BOJ 23890] 달팽이팽이 | |
G | [BOJ 23891] 타이어 끌기 | |
H | [BOJ 23892] 바코드 찢기 |
1. 문제
$23888$. 등차수열과 쿼리 (GBS Coding Contest 2021 Open D번)
백준 23888번 - 등차수열과 쿼리 (https://www.acmicpc.net/problem/23888)
2. 풀이
초항이 $a$이고 공차가 $d$, $n$은 항의 개수라고 두었을 때 등차수열의 합 $S = n(2a+d(n-1))/2$ 이다.
따라서 쿼리$1$의 경우는 $(l\sim r항의\;합)$ $ = (1\sim r항의\;합)$ $ - (1\sim (l-1)항의\;합)$ 공식을 세워서 한 번에 구할 수 있다.
쿼리$2$는 $a+n_1d, $ $a+n_2d,$ $ a+n_3d…$ 의 연속된 수들의 최대공약수는 $gcd(a, d)$를 만족하는 사실을 이용한다. 단, $l=r$일 경우 즉, 수가 한 개일 경우는 그냥 그 수가 그대로 최대공약수이다.
3. 채점 결과
4. 회고
수가 한 개인 경우도 $gcd(a, d)$를 해버려서 WA
를 받았다.
댓글남기기