zoukankan      html  css  js  c++  java
  • LIS

    O(nlog(n))的算法,网上讲解有很多,我就不在这里献丑了,直接上模板

    该模板计算从1到n的LIS,p[]为存放数列的数组

    最长上升子序列

    View Code
    int LIS(int n)
    {
        int l,r,m,i,tail = 0;
        for ( dp[ ++ tail ] = p[ 1 ],i = 2 ; i <= n ; ++ i ) 
        {
            if ( dp[ tail ] < p[ i ] ) 
            {
                dp[ ++ tail ] = p[ i ];
                continue;
            }
            for ( m=((r=tail)+(l=1)>>1) ; l < r ; m=(l+r)>>1 )
                if ( dp[ m ] < p[ i ] ) l = m+1;
                else r = m;
            dp[ m ] = p[ i ];
        }
        return tail;
    }

    O(n^2)

    int LIS(int n)
    {
        int ans=0 ;
        for(int i=1 ;i<=n ;i++)
        {
            dp[i]=1 ;
            for(int j=1 ;j<i ;j++)
                if(a[j]<a[i] && dp[j]+1>dp[i])
                    dp[i]=dp[j]+1 ;
            ans=max(ans,dp[i]) ;
        }
        return ans ;
    }
    View Code

    最长非下降子序列

    View Code
    int LIS(int n)
    {
        int l,r,m,i,tail = 0;
        for ( dp[ ++ tail ] = p[ 1 ],i = 2 ; i <= n ; ++ i ) 
        {
            if ( dp[ tail ] <= p[ i ] ) 
            {
                dp[ ++ tail ] = p[ i ];
                continue;
            }
            for ( m=((r=tail)+(l=1)>>1) ; l < r ; m=(l+r)>>1 )
                if ( dp[ m ] <= p[ i ] ) l = m+1;
                else r = m;
            dp[ m ] = p[ i ];
        }
        return tail;
    }
  • 相关阅读:
    [Usaco2008 Nov]mixup2 混乱的奶牛
    [Poi2004] 旅行问题
    [洛谷P1278]单词游戏
    redis20
    redis19
    redis18
    OHC Java堆外缓存详解与应用
    SQL优化
    Mysql安装、字符、引擎设置
    大文件下载
  • 原文地址:https://www.cnblogs.com/xiaohongmao/p/2523762.html
Copyright © 2011-2022 走看看