BOJ 16740 - Arithmetic Progressions

image.png

최장 등차수열 찾기 문제이다.

일단 정렬을 하고 시작한다.

dp[l][r]dp[l][r]rr에서 이전 항이 ll 일 때 최장 등차수열이라고 하자.

그럼 d=arald=a_r-a_l 이고 alda_l-d 라는 수가 존재하는지를 보고 만약 존재한다면 그 인덱스를 이분탐색 등으로 구해서 그 인덱스를 jj 라고 한다면

dp[l][r]dp[j][l]+1dp[l][r] \coloneqq dp[j][l]+1 을 해주면 된다.

jj가 존재하지 않는다면 dp[l][r]2dp[l][r] \coloneqq 2 를 해주면 된다.

Tags:

Categories:

Updated:

Comments