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

POJ 1631 Bridging signals & 2533 Longest Ordered Subsequence

时间:2014-07-30 20:13:04      阅读:230      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   os   strong   io   for   div   

两个都是最长上升子序列,所以就放一起了

1631 因为长度为40000,所以要用O(nlogn)的算法,其实就是另用一个数组c来存储当前最长子序列每一位的最小值,然后二分查找当前值在其中的位置;如果当前点不能作为当前最长子序列的最大值,则更新找到值为两者间的较小值。

 

2533 就是一个裸的最长上升子序列。。。这里就不多说了,直接dp就好。。。

 

1611:

 1 #include <iostream>
 2 #include <cstring>
 3 #include <cstdio>
 4 #include <algorithm>
 5 #define maxn 100005
 6 using namespace std;
 7 
 8 int d;
 9 int c[maxn];
10 
11 int erfen (int d,int n){
12     int l=0,r=n;
13     int mid;mid=(l+r)/2;
14     while (l<r){
15         if (c[mid]<d&&c[mid+1]>=d) return mid+1;
16         if (c[mid]>d)
17             r=mid;
18         else l=mid+1;
19         mid=(l+r)/2;
20     }
21     return mid;
22 }
23 
24 int main (){
25     int n;
26     int t;
27     scanf ("%d",&t);
28     while (t--){
29         scanf ("%d",&n);
30         int ans=1;
31         memset (c,0,sizeof c);
32         for (int i=0;i<n;i++){
33             scanf ("%d",&d);
34             int x=erfen (d,ans);//cout<<x;
35             if (x>=ans&&c[ans]<d)
36                 c[ans++]=d;
37             else if (c[x]!=d) c[x]=d;
38         }
39         printf ("%d\n",ans-1);
40     }
41     return 0;
42 }

 

 

2533:

 1 #include <iostream>
 2 #include <cstring>
 3 #include <cstdio>
 4 #include <algorithm>
 5 #define maxn 1005
 6 using namespace std;
 7 
 8 int d[maxn],dp[maxn];
 9 
10 int main (){
11     int n;
12     while (~scanf ("%d",&n)){
13         for (int i=0;i<n;i++)
14             scanf ("%d",&d[i]);
15         int ans=0;
16         for (int i=0;i<n;i++){
17             dp[i]=1;
18             for (int j=0;j<i;j++){
19                 if (d[j]<d[i])
20                     dp[i]=max (dp[i],dp[j]+1);
21             }
22             ans=max (ans,dp[i]);
23         }
24         printf ("%d\n",ans);
25     }
26     return 0;
27 }

 

POJ 1631 Bridging signals & 2533 Longest Ordered Subsequence,布布扣,bubuko.com

POJ 1631 Bridging signals & 2533 Longest Ordered Subsequence

标签:style   blog   color   os   strong   io   for   div   

原文地址:http://www.cnblogs.com/gfc-g/p/3878639.html

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