티스토리 뷰
반응형
solved.ac 티어 : 골드 3
이문제는 연결선이 서로 꼬이지(겹치지, 교차하지) 않도록 하면서 나올 수 있는 최대 개수를 구하는 것이다. 이때 이문제에서 꼬이지 않게 하려면 i번째의 값보다 i+1번째 값이 더 커야 된다. 즉 이문제는 LIS(최장 증가 부분 수열)이라는 거다.
그러므로 이분탐색 LIS를 구해주면 된다.
import sys
sys.setrecursionlimit(1000001)
a=int(input())
l=list(map(int,input().split()))
t=[0]
def lower_bound(n):
start=0
end=len(t)-1
while start < end:
m=(start+end)//2
if t[m]<n:
start=m+1
else:
end=m
return end
for x in range(a):
if t[len(t)-1] < l[x]:
t.append(l[x])
else:
t[lower_bound(l[x])]=l[x]
print(len(t)-1)
반응형
'ps' 카테고리의 다른 글
BOJ 2565(전깃줄)풀이 (0) | 2021.01.30 |
---|---|
BOJ 2912(백설공주와 난쟁이)풀이 (0) | 2021.01.24 |
BOJ 20052(괄호 문자열 ?)풀이 (0) | 2021.01.22 |
BOJ 17407(괄호 문자열과 쿼리)풀이 (0) | 2021.01.21 |
BOJ 11670(초등 수학) 풀이 (0) | 2021.01.19 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 자료 구조
- 최소 스패닝 트리
- 그래프 탐색
- 트리에서의 다이나믹 프로그래밍
- KOI
- 완전 탐색
- 누적 합
- discord bot
- 다이나믹 프로그래밍
- A Dance of Fire and Ice
- C++
- 그리디 알고리즘
- 이분 탐색
- 깊이 우선 탐색
- 이분매칭
- BOJ
- 구현
- 세그먼트 트리
- 수학
- 느리게 갱신되는 세그먼트 트리
- 선분 교차 판정
- 자료구조
- codeforces
- 잡봇
- 정렬
- Python
- 그래프 이론
- 트리
- 개발
- 알고리즘
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
글 보관함