关闭

POJ 2533 Longest Ordered Subsequence(LIS)

318人阅读 评论(0) 收藏 举报
分类:

Description
求一数列的最长上升子序列
Input
第一行为数列长度n,第二行为n个整数
Output
输出数列的最长上升子序列长度
Sample Input
7
1 7 3 5 9 4 8
Sample Output
4
Solution
最长升序子序列一般有两种解法,一种是经典的动态规划方法,复杂度为O(n^2),另外一种方法则借助栈和二分查找,复杂度为O(nlgn)。动规解法前面提到过,这里解释下栈和二分查找,这种方法很直观,比较好理解,用一句话说就是顺次扫描数组,如果a[i]大于栈顶的元素则入栈,否则在栈中找到第一个大于a[i]的元素t并用a[i]替换t,最后的top就是最长升序子序列的长度。
Code

#include<cstdio>
#include<iostream>
#include<algorithm>
using namespace std;
#define INF (1<<29)
#define maxn 100000
int n;
int a[maxn];
int dp[maxn];
int main()
{
    while(scanf("%d",&n)!=EOF)
    {
        for(int i=0;i<n;i++)
            scanf("%d",&a[i]);
        fill(dp,dp+n,INF);
        for(int i=0;i<n;i++)
            *lower_bound(dp,dp+n,a[i])=a[i];
        printf("%d\n",lower_bound(dp,dp+n,INF)-dp);
    }
    return 0;
}
0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

Longest Ordered Subsequence(最长单调递增子序列)poj2533+动态规划

Longest Ordered Subsequence Time Limit: 2000MS   Memory Limit: 65536K Total Submissi...
  • u010579068
  • u010579068
  • 2015-10-19 13:09
  • 1017

算法笔记-1-最大子列和-Maximum Subsequence Sum

题目内容: Given a sequence of KK integers {N1,N2,...,NK N_1, N_2, ..., N_K}. A continuous subsequence...
  • plank_root
  • plank_root
  • 2016-09-18 22:58
  • 1450

最长公共子序列(Longest-Common-Subsequence,LCS)

一个字符串S,去掉零个或者多个元素所剩下的子串称为S的子序列。最长公共子序列就是寻找两个给定序列的子序列,该子序列在两个序列中以相同的顺序出现,但是不必要是连续的。 例如序列X=ABCBDAB,Y=...
  • u010064842
  • u010064842
  • 2013-09-21 00:14
  • 1384

Poj 2533 Longest Ordered Subsequence(LIS)

一、Description A numeric sequence of ai is ordered if a1 a2 aN. Let the subsequence of the given nu...
  • Insert_day
  • Insert_day
  • 2013-08-02 10:02
  • 475

POJ 2533 Longest Ordered Subsequence (模版LIS)

题意:输出最长递增子序列的长度思路:直接裸LIS, #include const int N = 1001; int a[N], f[N], d[N]; // d[i]用于记录a[0...i]的最大...
  • wangxinxin_
  • wangxinxin_
  • 2015-04-20 15:29
  • 354

POJ 2533 : Longest Ordered Subsequence - LIS问题

最长不降子序列问题, 同学报告中的题。一道简单的DP。题意:给定 n 个整数 A1A2....An,按从左到右的顺序选出尽量多的整数,组成一个上升子序列,输出最长子序列的长度。分析:I.最简单思路,d...
  • Booky_Amnesia
  • Booky_Amnesia
  • 2015-01-10 21:46
  • 354

POJ:2533 Longest Ordered Subsequence(LIS-n*logn解法)

Longest Ordered Subsequence Time Limit: 2000MS   Memory Limit: 65536K Total Submissi...
  • zugofn
  • zugofn
  • 2016-08-11 11:27
  • 147

POJ 2533 Longest Ordered Subsequence(LIS:最长上升子序列)

POJ 2533 Longest Ordered Subsequence(LIS:最长上升子序列) http://poj.org/problem?id=2533 题意: 给你一个长度为n...
  • u013480600
  • u013480600
  • 2014-11-05 11:19
  • 842

POJ 3903-Stock Exchange/POJ 2533-Longest Ordered Subsequence(LIS-最长递增子序列长度)

Stock Exchange Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 6647   ...
  • MIKASA3
  • MIKASA3
  • 2017-02-28 21:16
  • 250

北大POJ2533-Longest Ordered Subsequence【O(nlogn)】

  • 2012-05-11 02:22
  • 1KB
  • 下载
    个人资料
    • 访问:494474次
    • 积分:23236
    • 等级:
    • 排名:第350名
    • 原创:1877篇
    • 转载:0篇
    • 译文:0篇
    • 评论:68条
    最新评论