自用板子
int a[N];//处理的原数组
int n;
int d[N];
int LIS()
{
int len=1;
d[1]=a[1];
for(int i=2;i<=n;i++)
{
if(a[i]>d[len])
{
d[++len]=a[i];
}
else
{
int j=lower_bound(d+1,d+len+1,a[i])-d;
d[j]=a[i];
}
}
return len;
}
自用板子
int a[N];//处理的原数组
int n;
int d[N];
int LIS()
{
int len=1;
d[1]=a[1];
for(int i=2;i<=n;i++)
{
if(a[i]>d[len])
{
d[++len]=a[i];
}
else
{
int j=lower_bound(d+1,d+len+1,a[i])-d;
d[j]=a[i];
}
}
return len;
}