zoukankan      html  css  js  c++  java
  • POJ-1631 Bridging signals

    题目大意:就是求最长的上升子序列,输出长度。

    思路:LIS水题。就是题目描述的特别长。

     1 #include<iostream>
     2 #include<stdio.h>
     3 #include<algorithm>
     4 #include<string.h>
     5 using namespace std;
     6 int a[40005];
     7 int dp[40005];
     8 int mx[40005];
     9 int INF=9999999;
    10 int main(){
    11     int T;
    12     cin>>T;
    13     while(T--){
    14         int n;
    15         cin>>n;
    16         for(int i=1;i<=n;i++)
    17             scanf("%d",&a[i]);
    18         for(int i=0;i<=40003;i++)
    19             mx[i]=INF;
    20         mx[0]=0;
    21         int len=0;
    22         for(int i=1;i<=n;i++){
    23             for(int j=len;j>=0;j--){
    24                 if(a[i]>mx[j]){
    25                     dp[i]=j+1;
    26                     mx[j+1]=min(a[i],mx[j+1]);
    27                     break;
    28                 }
    29             }
    30             len=max(len,dp[i]);
    31         }
    32         cout<<len<<endl;
    33     }
    34     return 0;
    35 }
  • 相关阅读:
    大数据
    优化
    gnu
    sed
    hadoop部署
    安装 zookeeper
    ansible
    ssh 配置无密码登录
    未完待续
    解正向代理、反向代理、透明代理
  • 原文地址:https://www.cnblogs.com/ISGuXing/p/7260275.html
Copyright © 2011-2022 走看看