基础一定要掌握好。
#include <stdio.h>
#include <string.h>
#include <cstdio>
#include <algorithm>
using namespace std;
const int N = 5005;
const int INF = 1<<27;
int main()
{
// freopen("in.txt", "r", stdin);
int T, n, i, k, weight, ans;
int g[N], a0[N];
while(~scanf("%d", &n))
{
for(int i = 1; i <= n; i ++)
{
scanf("%d", &a0[i]);
g[i] = INF;
}
ans = 0;
for(i = 1; i <= n; i ++)
{
k = lower_bound(g + 1, g + n + 1, a0[i]) - g;
ans = max(ans, k);
g[k] = a0[i];
}
printf("%d\n", ans);
}
return 0;
}