# LIS
LIS 개념을 알고 푸는것이 좋당.
최장 증가 수열(LIS,Largest Increasing Sequence) 알고리즘
#include <iostream> #include <cstdio> #include <cstring> #include <cmath> #include <algorithm> #include <vector> #include <queue> #include <set> #include <map> #define MAX 100005 #define INF 987654321 #define MOD 31991 #pragma warning(disable:4996) using namespace std; typedef long long ll; typedef pair<int, int> pi; int n, m, ans = 0; vector<int> v; int main() { scanf("%d", &n); v.push_back(-INF); for (int i = 0; i < n; i++) { scanf("%d", &m); if (v.back() < m) { v.push_back(m); ans++; } else { auto it = lower_bound(v.begin(), v.end(), m); *it = m; } } printf("%d", ans); return 0; }
'IT > BOJ' 카테고리의 다른 글
백준(BOJ) 1298 노트북 주인을 찾아서 ** (0) | 2018.09.30 |
---|---|
백준(BOJ) 9240 로버트 후드 *** (0) | 2018.09.28 |
백준(BOJ) 1275 커피숍2 ** (0) | 2018.09.28 |
백준(BOJ) 2042 구간 합 구하기 ** (0) | 2018.09.17 |
백준(BOJ) 2512 예산 ** (0) | 2018.09.14 |