题目链接:51Nod 2080 最长上升子序列
题目大意:
求最长上升子序列长度。
题解:
最长升模板题。
#include <algorithm>
#include <iostream>
using namespace std;
int dp[1010], len, a[1010], n;
int main() {
cin >> n;
for (int i = 1; i <= n; ++i) {
cin >> a[i];
}
dp[++len] = a[1];
for (int i = 2; i <= n; ++i) {
if (dp[len] <= a[i]) {
dp[++len] = a[i];
} else {
int p = upper_bound(dp + 1, dp + len + 1, a[i]) - dp;
dp[p] = a[i];
}
}
cout << len;
return 0;
}