nlogn最长单调递增
来源:互联网 发布:淘宝如何设置客户权限 编辑:程序博客网 时间:2024/05/24 07:02
http://acm.hdu.edu.cn/showproblem.php?pid=1950
问题概述:输入n个整数,求出最长严格单调递增序列,n<=100000
输入样例: 对应输出:
1 5
7
1 3 2 4 6 7 2
len数组:len[k]表示长度为k的单调递增序列中最大的那个数为len[k]
ans数组:ans[k]表示以第k个元素结尾的最长递增序列长度
例如: 1 3 2 4 6 7 2
len: 1 2 4 6 7 X X
ans: 1 2 2 3 4 5 2
#include<stdio.h>#include<string.h>int a[100005], best[100005], ans[100005], len;int Bsech(int x){int l, r, m;l = 0, r = len;while(l<r){m = l+(r-l)/2;if(best[m]>=x) r = m;elsel = m+1;}return l;}int main(void){int T, n, i, j, pos;scanf("%d", &T);while(T--){scanf("%d", &n);for(i=1;i<=n;i++)scanf("%d", &a[i]);len = 1;best[1] = a[1], ans[1] = 1;for(i=2;i<=n;i++){if(a[i]>best[len])best[++len] = a[i], ans[i] = len;else{pos = Bsech(a[i]);//ans[i] = pos;best[pos] = a[i];}}printf("%d\n", len);/*printf("%d", ans[1]);for(i=2;i<=n;i++)printf(" %d", ans[i]);printf("\n");*/}return 0;}
1 0
- nlogn最长单调递增
- 单调递增最长子序列 O(nlogn)
- 最长单调递增子序列O(nlogn)
- 最长单调递增子序列O(NlogN)算法
- 最长递增子序列 nlogn
- 最长递增子序列 nlogn
- 最长递增子序列 nlogn
- 找出n个数组成的最长单调递增子序列( 动态规划O(nlogn) )
- 时间复杂度为O(nlogn)的最长单调递增子序列
- UVA-10534-Wavio Sequence(最长单调递增子序列长度NlogN)
- nyoj 17 单调递增最长子序列(dp---记忆化搜索||穷举|| nlogn算法)
- NYOJ 17 单调递增最长子序列(O(n2))+HDU 1025 Constructing Roads In JGShining +NYOJ 214 单调递增子序列(二)(O(nlogn))(整理)
- 算法_动态规划_最长单调递增子序列问题(O(nlogn)的时间复杂度)
- 最长单调递增子序列
- 最长单调递增子序列
- 最长单调递增子序列
- 最长单调递增子序列
- 最长单调递增子序列
- sap pp 详细讲解 生产结算 工单结算
- openSNS 使用关闭游客访问插件后注册头像无法上传问题解决。
- Tez上线部署记录
- 数据结构——线索化二叉树
- JAVA总结
- nlogn最长单调递增
- ASP.NET Core 开发-Logging 使用NLog 写日志文件
- Java日历横向输出
- 我的奋斗
- android自定义控件之中间是斜线的占比条
- FXBlurView模糊图片处理
- a20 nand更换emmc 版本sdk修改记录
- CS231n winter 2016 学习笔记lecture 1
- 摇杆的简单使用 Unity3d