2018. 4. 19. 00:57, 알고리즘/BOJ
https://www.acmicpc.net/problem/2647
고등부 정올 1번 문제 치고 은근 까다롭네요. D[i][j]를 s[i:j]를 연결할 때의 최솟값, h[i][j]를 s[i:j] 구간을 연결할 때 가장 높이 올라가는 연결선의 높이, conn[i][j]를 s[i:j] 구간을 연결할 때 i가 연결하는 곳이라고 둔 후에, D[i][j]를 구할 때 우선 i와 j-1을 연결하는 경우를 처리한 이후, sep = i+2, i+4, ...에 대해 D[i][sep]+D[sep][j]를 생각하면 됩니다.
값 자체는 쉽게 구해지는데 그 이후에 연결 상태를 복원하는 것이 조금 까다로웠습니다. 저는 conn을 이용해 recursive하게 해결했습니다.
'알고리즘 > BOJ' 카테고리의 다른 글
[BOJ] 3110번: BERBA (0) | 2018.04.21 |
---|---|
[BOJ] 11947번: 이런 반전이 (0) | 2018.04.21 |
[BOJ] 2618번: 경찰차 (2) | 2018.04.21 |
[BOJ] 2473번: 세 용액 (0) | 2018.04.18 |
[BOJ] 11003번: 최소값 찾기 (0) | 2018.04.18 |
[BOJ] 14931번: 물수제비 (SUJEBI) (0) | 2018.04.17 |
Comments