NYOJ 214 单调递增子序列(二) (LIS模板)
来源:互联网 发布:破解摄像头app软件 编辑:程序博客网 时间:2024/05/22 06:29
单调递增子序列(二)
时间限制: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型整数)! - 输出
- 对于每组测试数据输出整形数列的最长递增子序列的长度,每个输出占一行。
- 样例输入
71 9 10 5 11 2 1322 -1
- 样例输出
51
累了刷水题:熟练掌握,要知道变通,根据不同要求写出不同的代码,形式等,分析复杂度·,考虑用数据结构优化;
AC代码:
#include<cstdio>#include<algorithm>using namespace std;int a[100010],dp[111111];int LIS(int N){int i=0,cnt=2;dp[1]=a[1]; for(i=2;i<=N;++i){int pos=lower_bound(dp+1,dp+cnt,a[i])-dp; if(pos==cnt) ++cnt; dp[pos]=a[i]; } return cnt-1;}int main(){int N,i;while(~scanf("%d",&N)){for(i=1;i<=N;++i) scanf("%d",&a[i]);printf("%d\n",LIS(N)); }return 0; }
0 0
- NYOJ 214 单调递增子序列(二) (LIS模板)
- nyoj 单调递增子序列(二) 214 (LIS 优化)
- nyoj 单调递增最长子序列 17 (LIS模板)
- NYOJ 17 单调递增最长子序列 (LIS模板)
- nyoj 214 单调递增子序列(二) 【LIS】
- nyoj--214--单调递增子序列(二)(二分查找+LIS)
- nyoj 214 单调递增子序列(二)《LIS》
- 214 单调递增子序列(二)【lis】
- nyoj 214 单调递增子序列(二)(LIS ---nlogn算法)
- NYOJ 214 单调递增子序列(二)
- NYOJ 214 单调递增子序列(二)
- NYOJ 214 单调递增子序列二
- Nyoj 214 单调递增子序列(二)
- NYOJ 214 单调递增子序列(二)
- NYOJ 214 单调递增子序列 二
- 单调递增子序列(二)(nyoj 214)
- NYOJ 214 单调递增子序列(二)
- nyoj-214 单调递增子序列(二)
- Awesome Design Patterns Summary in java
- hadoop元数据管理机制
- Java基础 注解 学习笔记
- 浙大PAT甲级 1112
- 第二周项目3-体验复杂度两种排序算法的 运行时间
- NYOJ 214 单调递增子序列(二) (LIS模板)
- 第二周项目3-体验复杂度(2)汉诺塔
- Flip Game
- 图.md
- 基于CompactRIO的嵌入式车载电性能测试系统研发
- 项目3体验复杂度
- HDU 1698 Just a Hook 线段树
- play框架2.5.6教程——安装play框架
- python正则表达式的理解