题意:求n个点的不上升子序列的最小个数。
#include <iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#define INF 0x7fffffff
using namespace std;
int d[110000];
int main()
{
int n;
while(~scanf("%d",&n))
{
int m=0;
d[0]=INF;
for(int i=0;i<n;i++)
{
int t,flag=0;
scanf("%d",&t);
for(int j=0;j<=m;j++)
{
if(d[j]>=t)
{
d[j]=t;
flag=1;
break;
}
}
if(!flag) d[++m]=t;
}
cout<<m+1<<endl;
}
}