51Nod 2080 最长上升子序列

题目链接: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;
}
原文地址:https://www.cnblogs.com/IzumiSagiri/p/15059559.html