Longest Ordered Subsequence POJ - 2533 最长上升子序列dp
Posted ttttttttrx
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Longest Ordered Subsequence POJ - 2533 最长上升子序列dp相关的知识,希望对你有一定的参考价值。
题意:最长上升子序列nlogn写法
1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<algorithm> 5 using namespace std; 6 int dp[1005]; 7 int a[1005]; 8 int main(){ 9 int n; 10 while(cin>>n){ 11 for(int i=0;i<n;i++){ 12 cin>>a[i]; 13 } 14 memset(dp,0,sizeof(dp)); 15 dp[1]=a[0]; 16 int flag=1; 17 for(int i=1;i<n;i++){ 18 int temp=lower_bound(dp,dp+flag,a[i])-dp; 19 if(dp[flag]<a[i]){ 20 dp[++flag]=a[i]; 21 } 22 else if(a[i]<dp[temp]){ 23 dp[temp]=a[i]; 24 } 25 } 26 cout<<flag<<endl; 27 } 28 return 0; 29 }
以上是关于Longest Ordered Subsequence POJ - 2533 最长上升子序列dp的主要内容,如果未能解决你的问题,请参考以下文章
POJ2533:Longest Ordered Subsequence
POJ 2533 Longest Ordered Subsequence
POJ 2533 Longest Ordered Subsequence