单调递增子序列(二)

时间限制:1000 ms  |  内存限制:65535 KB
难度:4
描写叙述

给定一整型数列{a1,a2...,an}(0<n<=100000),找出单调递增最长子序列。并求出其长度。

如:1 9 10 5 11 2 13的最长单调递增子序列是1 9 10 11 13,长度为5。

输入
有多组測试数据(<=7)

每组測试数据的第一行是一个整数n表示序列中共同拥有n个整数。随后的下一行里有n个整数,表示数列中的全部元素.每一个整形数中间用空格间隔开(0<n<=100000)。

数据以EOF结束 。

输入数据保证合法(全为int型整数)。
输出
对于每组測试数据输出整形数列的最长递增子序列的长度,每一个输出占一行。
例子输入
7
1 9 10 5 11 2 13
2
2 -1
例子输出
5
1

分析:跟hdoj1025原理http://blog.csdn.net/shengweisong/article/details/40347947一样

代码:

#include <stdio.h>
#include <string.h>
#include <algorithm>
#define M 100005
using namespace std; int a[M], d[M]; int bis(int m, int len){
int left = 1, right = len, mid;
while(left <= right){
mid = (right+left)>>1;
if(d[mid] > m) right = mid-1;
else if(d[mid]< m) left = mid+1;
else return mid;
}
return left;
} int main(){
int n;
while(~scanf("%d", &n) ){
memset(d, 0, sizeof(d));
int i, len;
for(i = 0; i < n; i ++){
scanf("%d", &a[i]);
}
//sort(a, a+n);
len = 1;
d[len] = a[i];
for(i = 1; i < n; i ++){
int t = bis(a[i], len);
d[t] = a[i];
if(t>len) len++;
}
printf("%d\n", len);
}
return 0;
}

最新文章

  1. iOS开发之浅谈MVVM的架构设计与团队协作
  2. OData 带更新的实例,并能取得元数据格式类型
  3. PHP 线程安全与非线程安全版本的区别深入解析
  4. JS验证金额
  5. Moscow Pre-Finals Workshop 2016. National Taiwan U Selection
  6. ProtoType(原型)-对象创建型模式
  7. 基于.net mvc的校友录(七、文件上传以及多对多关系表的LINQ查询实现)
  8. 使用git了解代码编写过程
  9. VisualBox会造成VPN连接不上问题
  10. codeforces --- 279C Ladder
  11. ASP.NET- Web.Config配置大文件上传
  12. 解决Mac OS Adobe Flash Builder 4.7 java heap space 问题【转】
  13. android开发SD卡工具类(一)
  14. win8.1镜像制作
  15. ubuntu 下配置Web服务器
  16. python基础(五)
  17. Spring使用MappingJackson2MessageConverter发送接收ActiveMQ消息
  18. 【转】Git 教程之协同开发
  19. webservice调用dll
  20. Jboss的jmx-console中查看内存和线程状态

热门文章

  1. 从Oracle Database 角度来看浪潮天梭K1主机的操作系统选择
  2. C#重构经典全面汇总
  3. List of content management systems
  4. spark rdd saveAsTextFile保存为文件
  5. nyoj--1184--为了肾六(动态规划+滚动数组)
  6. caffe(4) 激活层(Activation Layers)及参数
  7. kubernetes学习与实践篇(一)主要概念介绍
  8. md5sum---文件校验和
  9. 【Codeforces Round #422 (Div. 2) C】Hacker, pack your bags!(hash写法)
  10. bootstrap结合google code prettify的问题