最长递减子序列(nlogn)(个人模版)

时间:2023-03-09 21:39:22
最长递减子序列(nlogn)(个人模版)

最长递减子序列(nlogn):

 int find(int n,int key)
{
int left=;
int right=n;
while(left<=right)
{
int mid=(left+right)/;
if(res[mid]>key)
{
left=mid+;
}
else
{
right=mid-;
}
}
return left;
} int Lis(int a[],int n)
{
int r=;
res[r]=a[];
r++;
for(int i=;i<n;i++)
{
if(res[r-]>a[i])
{
res[r]=a[i];
r++;
}
else
{
int loc=find(r,a[i]);
res[loc]=a[i];
}
}
return r;
}