# 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 |