문제 링크
- http://icpc.me/20039
문제 출처
- 2020 인터넷 예선 D번
사용 알고리즘
- 세그먼트 트리
- DP
시간복잡도
- $O(N \log N)$
풀이
DP 느낌이 강하게 납니다. LIS 비슷하게 점화식을 세워봅시다.
- $A_i = $ $i$번째 원소까지 봤을 때, 마지막에 감소한 수열의 최대 길이
- $B_i = $ $i$번째 원소까지 봤을 때, 마지막에 2번 감소한 수열의 최대 길이
- $C_i = $ $i$번째 원소까지 봤을 때, 마지막에 증가한 수열의 최대 길이
- $D_i = $ $i$번째 원소까지 봤을 때, 마지막에 2번 증가한 수열의 최대 길이
Naive하게 계산하면 $O(N^2)$이고, Segment Tree를 이용해 계산하면 $O(N \log N)$에 풀 수 있습니다.
전체 코드
1 |
|