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

POJ-1631 Bridging signals

时间:2017-07-30 21:08:15      阅读:110      评论:0      收藏:0      [点我收藏+]

标签:code   bre   algo   题目   space   style   turn   min   clu   

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

思路: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 }

 

POJ-1631 Bridging signals

标签:code   bre   algo   题目   space   style   turn   min   clu   

原文地址:http://www.cnblogs.com/ISGuXing/p/7260275.html

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