【POJ - 2533】Longest Ordered Subsequence (最长上升子序列 简单dp)
Longest Ordered Subsequence
搬中文
Descriptions:
给出一个序列,求出这个序列的最长上升子序列。
序列A的上升子序列B定义如下:
- B为A的子序列
- B为严格递增序列
Input
第一行包含一个整数n,表示给出序列的元素个数。
Output
输出给出序列的最长子序列的长度。
Sample Input
7
1 7 3 5 9 4 8
Sample Output
4
题目链接:
https://vjudge.net/problem/POJ-2533
就是最长子序列,没啥说的,简单dp
二分查找的函数有 3 个:
lower_bound(起始地址,结束地址,要查找的数值) 地址:前闭后开。返回的是第一个大于或等于数值出现的位置,如果数值大于数组中全部元素,返回的是结束地址。
upper_bound(起始地址,结束地址,要查找的数值) 地址:前闭后开。返回的是第一个大于数值出现的位置,如果数值大于数组中全部元素,返回的是结束地址。
binary_search(起始地址,结束地址,要查找的数值) 返回的是是否存在这么一个数,是一个bool值。
AC代码
#include <iostream>
#include <cstdio>
#include <fstream>
#include <algorithm>
#include <cmath>
#include <deque>
#include <vector>
#include <queue>
#include <string>
#include <cstring>
#include <map>
#include <stack>
#include <set>
#define Mod 1000000007
#define eps 1e-6
#define ll long long
#define INF 0x3f3f3f3f
#define MEM(x, y) memset(x, y, sizeof(x))
#define Maxn 1000+10
using namespace std;
int dp[Maxn];
int a[Maxn];
int main()
{
int n;
cin>>n;
for(int i=;i<=n;i++)
cin>>a[i];
int len=;//最长子序列长度
dp[]=a[];
for(int i=;i<=n;i++)
{
if(a[i]>dp[len])//大于前一个,则赋值
dp[++len]=a[i];
else
{
//小于,则找到第一个大于a[i]的值,并把它替代了
int t=lower_bound(dp+,dp+len,a[i])-dp;
dp[t]=a[i];
}
}
cout<<len<<endl;
return ;
}
【POJ - 2533】Longest Ordered Subsequence (最长上升子序列 简单dp)的更多相关文章
- poj 2533 Longest Ordered Subsequence 最长递增子序列
作者:jostree 转载请注明出处 http://www.cnblogs.com/jostree/p/4098562.html 题目链接:poj 2533 Longest Ordered Subse ...
- POJ 2533 - Longest Ordered Subsequence - [最长递增子序列长度][LIS问题]
题目链接:http://poj.org/problem?id=2533 Time Limit: 2000MS Memory Limit: 65536K Description A numeric se ...
- poj 2533 Longest Ordered Subsequence 最长递增子序列(LIS)
两种算法 1. O(n^2) #include<iostream> #include<cstdio> #include<cstring> using namesp ...
- POJ 2533 Longest Ordered Subsequence 最长递增序列
Description A numeric sequence of ai is ordered if a1 < a2 < ... < aN. Let the subsequenc ...
- POJ 2533 Longest Ordered Subsequence(裸LIS)
传送门: http://poj.org/problem?id=2533 Longest Ordered Subsequence Time Limit: 2000MS Memory Limit: 6 ...
- POJ - 2533 Longest Ordered Subsequence与HDU - 1257 最少拦截系统 DP+贪心(最长上升子序列及最少序列个数)(LIS)
Longest Ordered Subsequence A numeric sequence of ai is ordered if a1 < a2 < ... < aN. Let ...
- 题解报告:poj 2533 Longest Ordered Subsequence(最长上升子序列LIS)
Description A numeric sequence of ai is ordered if a1 < a2 < ... < aN. Let the subsequence ...
- POJ 2533 Longest Ordered Subsequence(最长上升子序列(NlogN)
传送门 Description A numeric sequence of ai is ordered if a1 < a2 < ... < aN. Let the subseque ...
- POJ 2533 Longest Ordered Subsequence(DP 最长上升子序列)
Longest Ordered Subsequence Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 38980 Acc ...
- POJ 2533 Longest Ordered Subsequence(LIS模版题)
Longest Ordered Subsequence Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 47465 Acc ...
随机推荐
- 用自定义变量作为动作方法参数 URL路由 精通ASP-NET-MVC-5-弗瑞曼
- 团队项目——Alpha发布1
这个作业属于哪个课程 https://edu.cnblogs.com/campus/xnsy/GeographicInformationScience/homework 这个作业要求在哪里 https ...
- a标签跳转小程序
随着小程序应用的逐步广泛,与公众号之前的协同运营越来越重要,通过公众号的各个入口为小程序导流.最近在运营中发现,大家对公众号关注后回复.关键词回复,超链接小程序的需求. 首先把小程序绑定 ...
- 如何用Git.io来生成自定义后缀名的短网址
如何用Git.io来生成自定义后缀名的短网址 git.io是Github的官方短网址,它是用来缩短Github上项目的网址. 效果:Git.io/wacsh将会跳转到https://xhemj.git ...
- shiro 基础使用
引 言 相关内容 : https://blog.csdn.net/superyayaya/article/details/94408805 在web 中, 不同角色的用户, 具有不同的访问权限, 有的 ...
- Nginx-入门(源码编译安装http://nginx.org/en/download.html)
比较早的时候 web主要经典组合--->LAMP 近几年---->nginx后来居上--->LNMP=LEMP Nginx = Engine x Nginx和Apache 都是 ...
- Vue中的计算属性
一.什么是计算属性 模板内的表达式非常便利,但是设计它们的初衷是用于简单运算的.在模板中放入太多的逻辑会让模板过重且难以维护. 二.计算属性的用法 在一个计算属性里可以完成各种复杂的逻辑,包括运算.函 ...
- Spring5.x源码分析 | 从踩坑到放弃之环境搭建
Spring5.x源码分析--从踩坑到放弃之环境搭建 前言 自从Spring发行4.x后,很久没去好好看过Spring源码了,加上最近半年工作都是偏管理和参与设计为主,在技术细节上或多或少有点疏忽,最 ...
- web语义化这个坑
什么是wen语义化:https://www.zhihu.com/question/20455165 标签大全:http://www.w3school.com.cn/tags/tag_html.asp ...
- 每日一练PAT_B_PRAC_1005斐波那契凤尾
NowCoder号称自己已经记住了1-100000之间所有的斐波那契数.为了考验他,我们随便出一个数n,让他说出第n个斐波那契数.当然,斐波那契数会很大.因此,如果第n个斐波那契数不到6位,则说出该数 ...