【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 ...
随机推荐
- 使用Route Prefix 使用属性路由 精通ASP-NET-MVC-5-弗瑞曼
- python接口自动化测试 - configparser配置文件解析器详细使用
configparser简介 ConfigParser模块已在Python 3中重命名为configparser 该模块定义了ConfigParser类. ConfigParser类实现一种基本的配置 ...
- 简单实现Android手机“全局可调试”(ro.debuggable = 1)的方法【锤子坚果3】
在Android真机上调试程序有一个前提,就是这个apk包必须有 debuggable=true 的属性才行.而除了自己开发的apk能够控制打包属性之外,其他的程序发行之后显然不会设这个值为 true ...
- AntV F2 数据可视化填坑,图表横向滚动
柱状图横向滚动 思路 通过 Interaction 实现平移,通过 ScrollBar 显示滚动条 1.Interaction F2 提供一套交互机制,以达到通用交互行为的封装和复用.基于此机制,我们 ...
- 大事务造成的延迟(从binlog入手分析)
log_event.cc 入口: int Query_log_event::do_apply_event(Relay_log_info const *rli,const char *query_arg ...
- composer intall 报错
报错 [Composer\Exception\NoSslException] The openssl extension is required for SSL/TLS protection but ...
- windows系统中如何找到某程序运行的本地文件
主要通过window自带的服务功能来查询: 比如:
- Promise函数的使用
最近在做批量打印并监控显示打印进度的功能,用到了很多异步函数,很多异步函数嵌套在回调函数里面,层层嵌套,导致代码可阅读性与可维护性变得十分糟糕,而且由于都是异步执行的函数,无法知道什么时候能回调结束, ...
- Java反射机制——学习总结
前几天上REST课,因为涉及到Java的反射机制,之前看过一直没有用过,有些遗忘了,周末找了些资料来重新学习,现在总结一下,加深印象. 什么是反射机制? 参考百度百科对java反射机制的定义: “JA ...
- 单点登陆(SSO)
一.背景 在企业发展初期,企业使用的系统很少,通常一个或者两个,每个系统都有自己的登录模块,运营人员每天用自己的账号登录,很方便.但随着企业的发展,用到的系统随之增多,运营人员在操作不同的系统时,需要 ...