[BOJ] 11055번: 가장 큰 증가 부분 수열

https://www.acmicpc.net/problem/11055


D[i] : A[i]를 마지막으로 하는 증가 수열 중 가장 합이 큰 수열의 합


이라고 할 때


D[i] = max(D[j]+A[i]) for j = 0~i-1 s.t. satisfies A[j] < A[i] 입니다.


이렇게 하면 O(N^2)으로 풀 수 있습니다. 세그먼트 트리를 쓰면 O(NlgN)으로 풀 수 있습니다.


https://github.com/encrypted-def/BOJ/blob/master/11055.cpp

'알고리즘 > BOJ' 카테고리의 다른 글

[BOJ] 1922번: 네트워크 연결  (0) 2018.01.03
[BOJ] 1520번: 내리막 길  (0) 2018.01.03
[BOJ] 2805번: EKO  (0) 2018.01.03
[BOJ] 1987번: 알파벳  (0) 2018.01.03
[BOJ] 1927번: 최소 힙  (0) 2018.01.03
[BOJ] 1789번: 수들의 합  (0) 2018.01.03
  Comments