zoukankan      html  css  js  c++  java
  • wenbao与最大上升子序列

     1 #include <bits/stdc++.h>
     2 using namespace std;
     3 
     4 const int N=1e4;
     5 int a[N],d[N];
     6 
     7 int main(){
     8     int n;
     9     while(cin>>n){
    10         for(int i=0; i<n; i++) cin>>a[i];
    11         int ma=0;
    12         for (int i = 0; i < n; i++){
    13             d[i] = 1;
    14             for (int j = 0; j <= i - 1; j++){
    15                 if (a[j] < a[i] && d[i] < d[j] + 1){
    16                     d[i] = d[j] + 1;
    17                 }
    18             }
    19             ma=max(ma,d[i]);
    20         }
    21         printf("%d
    ",ma);
    22     }
    23     return 0;
    24 }

    二(复杂度低,推荐使用!!!!!!!!!!!!!)

     1 #include <iostream>
     2 using namespace std;
     3 
     4 const int N=1e5;
     5 int a[N],d[N];
     6 
     7 int main(){
     8     int n;
     9     while(cin>>n){
    10         for(int i=0; i<n; i++) cin>>a[i];
    11         int init=1;
    12         d[1]=a[0];
    13         for(int i=1; i<n; i++){
    14             if(a[i]>d[init]) d[++init]=a[i];
    15             else{
    16                 //int pos=sear(0,init,a[i]);
    17                 int pos=lower_bound(d,d+init,a[i])-d;
    18                 d[pos]=a[i];
    19             }
    20             cout<<init<<endl;
    21         }
    22     }
    23     return 0;
    24 }

    只有不断学习才能进步!

  • 相关阅读:
    几种芯片封装
    Finder 快捷键
    Linux dnsmasq 服务
    java: private, protected, public
    java final
    Jenkins 搭建
    一款工作记录软件
    MacOS 修改主机名
    Ubuntu 静态IP
    adb tcp 调试
  • 原文地址:https://www.cnblogs.com/wenbao/p/5727749.html
Copyright © 2011-2022 走看看