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

Longest Ordered Subsequence

POJ 2533 Longest Ordered Subsequence

POJ 2533 Longest Ordered Subsequence

POJ 2533 Longest Ordered Subsequence DP

POJ - 2533 Longest Ordered Subsequence