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. 채점 결과

boj-23888

4. 회고

수가 한 개인 경우도 $gcd(a, d)$를 해버려서 WA를 받았다.

5. 코드

댓글남기기