zoukankan      html  css  js  c++  java
  • scau实验题 8596 Longest Ordered Subsequence

    其实解释POJ 2533 原题

    最长上升子序列,用O(N*N)算法和o(n*logn)算法分别实现,学校OJ的数据比较弱,就算写成最长不下降子序列也可以通过,但是在POJ上是WA的

    而题意本身应该是严格递增的

    o(N*N)

    #include <stdio.h>
    #include <string.h>
    #define N 10010
    int a[N];
    int n;
    
    void LOS()
    {
        int dp[N],i,j,tmp,max;
        memset(dp,0,sizeof(dp));
        dp[1]=1; max=1;
        for(i=2; i<=n; i++)
        {
            for(tmp=0,j=1; j<i; j++)
                if(a[i]>a[j] && dp[j]>tmp)
                    tmp=dp[j];
            dp[i]=tmp+1;
            if(dp[i]>max) max=dp[i];
        }
        printf("%d\n",max);
    }
    int main()
    {
        int i;
        while(scanf("%d",&n)!=EOF && n)
        {
            for(i=1; i<=n; i++) scanf("%d",&a[i]);
            LOS();
        }
        return 0;
    }

    O(n*logn)

    #include <stdio.h>
    #include <string.h>
    #define N 1010
    int a[N],c[N],n;
    
    int binary_search(int key , int l , int r)
    {
        int mid;
        while(l<=r)
        {
            mid=(l+r)/2;
            if(c[mid]<key && key<=c[mid+1]) return mid+1;
            else if(key<=c[mid]) r=mid-1;
            else                 l=mid+1;
        }
    }
    void LOS()
    {
        int i,j,x,top;
        memset(c,0,sizeof(c));
        c[1]=a[1]; top=1;
        for(i=2; i<=n; i++)
        {
            if(a[i]<=c[1])       c[1]=a[i];
            else if(a[i]>c[top]) c[++top]=a[i];
            else
            {
                x=binary_search(a[i],1,top);
                c[x]=a[i];
            }
        }
        printf("%d\n",top);
    }
    int main()
    {
        int i;
        while(scanf("%d",&n)!=EOF && n)
        {
            for(i=1; i<=n; i++) scanf("%d",&a[i]);
            LOS();
        }
        return 0;
    }
  • 相关阅读:
    Unity之图片压缩,批量设置,导入自动设置
    Unity之可寻址资源之初始化,下载
    最优二叉树
    独立任务最优调度问题
    石子合并问题
    linux初学笔记
    码农
    用循环打印出多种三角形
    人机猜拳(这是最近的一个总结)
    期末总结
  • 原文地址:https://www.cnblogs.com/scau20110726/p/2740719.html
Copyright © 2011-2022 走看看