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

poj 3903 Stock Exchange(最长上升子序列,模版题)

时间:2014-06-26 16:20:12      阅读:236      评论:0      收藏:0      [点我收藏+]

标签:style   class   blog   code   http   tar   

题目

 

bubuko.com,布布扣
#include<stdio.h>
//最长上升子序列 nlogn
//入口参数:数组名+数组长度,类型不限,结构体类型可以通过重载运算符实现
//数组下标从1号开始。

int bsearch(int a[],int len,int num)
{
    int left=1,right=len;
    while(left<=right)
    {
        int mid=(left+right)/2;
        if(num<=a[mid])  //若最长不下降子序列,改<= 为 <
            right=mid-1;
        else
            left=mid+1;
    }
    return left;
}

int LIS(int a[],int len)
{
    int i,j,count=1;
    int *dp=new int[len+1];
    dp[1]=a[1];
    for(i=2;i<=len;i++)
    {
        if(a[i]>dp[count])    //若最长不下降子序列,改> 为 >=
            dp[++count]=a[i];
        else if(a[i]<=dp[1])    //若最长不下降子序列,改<= 为 <
            dp[1]=a[i];
        else
dp[bsearch(dp,count,a[i])]=a[i];            
    }
    return count;
}
int aa[100099];
int main()
{
    int t,i;
    while(~scanf("%d",&t))
    {
        for(i=1;i<=t;i++)
            scanf("%d",&aa[i]);
        printf("%d\n",LIS(aa,t));
    }
    return 0;
}
View Code

 

poj 3903 Stock Exchange(最长上升子序列,模版题),布布扣,bubuko.com

poj 3903 Stock Exchange(最长上升子序列,模版题)

标签:style   class   blog   code   http   tar   

原文地址:http://www.cnblogs.com/laiba2004/p/3808969.html

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