dp--最长上升子序列LIS
模板
int lis(int n)
{
int len = 1;
dp[1] = a[1];
for(int i = 2; i <= n; i++)
{
if(a[i] >= dp[len])
{
dp[++len] = a[i];
}
else
{
for(int j = 1; j <= len; j++)
{
if(dp[j] > a[i])
{
dp[j] = a[i];
break;
}
}
}
}
return len;
}
dp[len]代表长度为len时,a[i]的值
可以使用二分查找优化