51Nod - 1134 最长递增子序列【动态规划】
给出长度为N的数组,找出这个数组的最长递增子序列。(递增子序列是指,子序列的元素是递增的)
例如:5 1 6 8 2 4 5 10,最长递增子序列是1 2 4 5 10。
Input
第1行:1个数N,N为序列的长度(2 <= N <= 50000)
第2 - N + 1行:每行1个数,对应序列的元素(-10^9 <= Sii <= 10^9)
Output
输出最长递增子序列的长度。
Sample Input
8
5
1
6
8
2
4
5
10
Sample Output
5
思路:显而易见,这道题要用动态规划和二分来写,复杂度O(nlogn),n2会超时。
#include<iostream>
#include<cstdio>
using namespace std;
int arr[50005];
int BinarySearch(int *arr,int value,int len)
{
int begin =0,end=len-1;
while(begin<=end)
{
int mid=begin+(end-begin)/2 ;
if(arr[mid]==value)
return mid;
else if(arr[mid]>value)
end=mid-1;
else
begin=mid+1;
}
return begin;
}
int LIS(int *arr,int len)
{
int a[len],n=1;
a[0]=arr[0];
for(int i=1;i<len;++i)
{
if(arr[i] > a[n-1])
{
a[n]=arr[i];
++n;
}
else
{
int pos = BinarySearch(a,arr[i],n);
a[pos]=arr[i];
}
}
return n;
}
int main()
{
int n;
scanf("%d",&n);
for(int i=0;i<n;++i)
scanf("%d",&arr[i]);
printf("%d\n",LIS(arr,n));
return 0;
}
51Nod - 1134 最长递增子序列【动态规划】的更多相关文章
- 51nod 1134 最长递增子序列
题目链接:51nod 1134 最长递增子序列 #include<cstdio> #include<cstring> #include<algorithm> usi ...
- 51nod 1134最长递增子序列
1134 最长递增子序列 基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题 收藏 关注 给出长度为N的数组,找出这个数组的最长递增子序列.(递增子序列是指,子序列的元素 ...
- LCS 51Nod 1134 最长递增子序列
给出长度为N的数组,找出这个数组的最长递增子序列.(递增子序列是指,子序列的元素是递增的) 例如:5 1 6 8 2 4 5 10,最长递增子序列是1 2 4 5 10. Input 第1行:1个 ...
- LIS 51Nod 1134 最长递增子序列
给出长度为N的数组,找出这个数组的最长递增子序列.(递增子序列是指,子序列的元素是递增的) 例如:5 1 6 8 2 4 5 10,最长递增子序列是1 2 4 5 10. Input 第1行:1个 ...
- 51Nod 1134 最长递增子序列(动态规划O(nlogn))
#include <iostream> #include <algorithm> #include <stdio.h> #define MAXN 50010 usi ...
- 51Nod:1134 最长递增子序列
动态规划 修改隐藏话题 1134 最长递增子序列 基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题 收藏 关注 给出长度为N的数组,找出这个数组的最长递增子序列.(递 ...
- 51 Nod 1134 最长递增子序列 (动态规划基础)
原题链接:1134 最长递增子序列 题目分析:长度为 的数列 有多达 个子序列,但我们应用动态规划法仍可以很高效地求出最长递增子序列().这里介绍两种方法. 先考虑用下列变量设计动态规划的算法. ...
- 51nod 1376 最长递增子序列的数量(线段树)
51nod 1376 最长递增子序列的数量 数组A包含N个整数(可能包含相同的值).设S为A的子序列且S中的元素是递增的,则S为A的递增子序列.如果S的长度是所有递增子序列中最长的,则称S为A的最长递 ...
- 51nod 1218 最长递增子序列 | 思维题
51nod 1218 最长递增子序列 题面 给出一个序列,求哪些元素可能在某条最长上升子序列中,哪些元素一定在所有最长上升子序列中. 题解 YJY大嫂教导我们,如果以一个元素结尾的LIS长度 + 以它 ...
随机推荐
- 2014 北京 DevFest 大会能够报名啦,小伙伴们还在等什么
一年一度的大型开发人员活动,2014 北京 DevFest 大会站点正式上线: http://devfest.gdgbeijing.org/. 还等什么,開始报名了! 今年 DevFest 大会将再次 ...
- 初识ASP.NET---一般处理程序
问题来源: 今天在敲一个小的demo,利用Jquery实现级联下拉框,敲的过程中发现不管怎么和源代码对比都无法显示想要的功能. 这才想着原来是没有写后台代码,询问一清同学的时候,他告诉我能够利用ASP ...
- Python常用模块【sys】
sys.argv 参数 「argv」是「argument variable」参数变量的简写形式.一般在命令行调用的时候由系统传递给程序.这个变量其实是一个List列表,argv[0] 一般是“被 ...
- [NetworkFlow]网络流建模相关
流 网络流问题本质上是线性规划问题的应用之中的一个,线性规划问题的标准形式是给出一组等式约束和不等式约束.要求最优化一个线性函数. 在流问题中,变量以流量的形式出如今问题中,我们给出一个流网络(以有向 ...
- SGU - 403 - Scientific Problem (水)
403. Scientific Problem Time limit per test: 0.25 second(s) Memory limit: 65536 kilobytes input: sta ...
- Linux(redhat 5.8)下 安装jetty 部署 使用
首先须要安装JDK,自行解决 下载jetty安装包http://dist.codehaus.org/jetty/ 我下载的是8.1.15 tar -xzvf *.tar.gz 解压完之后,基本就能够用 ...
- php 原生简版日志导出
<?phpfunction writeLog($msg){ $logFile = date('Y-m-d').'.txt'; $msg = date('Y-m-d H:i:s').' >& ...
- JavaScript中变速运动的数学模型构建
AB两地直线距离相距为S,机器人β从A点向B点行进.已知机器人β的每间隔固定时间行进一段路程,其下次行进的距离为当前距离B点路程的1/q(q为正整数),求机器人第n次行进距离的表达式an以及前n项和公 ...
- A - High School: Become Human
Problem description Year 2118. Androids are in mass production for decades now, and they do all the ...
- [转]ORACLE EXECUTE IMMEDIATE 小结
转自:http://www.cnblogs.com/huanghai223/archive/2011/06/29/2093660.html EXECUTE IMMEDIATE 代替了以前Oracl ...