码迷,mamicode.com
首页 > 其他好文 > 详细

Longest Ordered Subsequence POJ - 2533 最长上升子序列dp

时间:2019-01-13 00:26:38      阅读:187      评论:0      收藏:0      [点我收藏+]

标签:iostream   cin   sequence   using   span   lag   else   pac   mes   

题意:最长上升子序列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

标签:iostream   cin   sequence   using   span   lag   else   pac   mes   

原文地址:https://www.cnblogs.com/ttttttttrx/p/10261395.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!