O(nlogn)的最长上升子序列并且记录所选择的数 模板
来源:互联网 发布:js文件下载 编辑:程序博客网 时间:2024/04/29 10:42
#include <iostream>#include <cstdlib>#include <cstdio>#include <cmath>#include <cstring>#include <algorithm>using namespace std;const int MAXN = 10000 + 10;int A[MAXN];int lis[MAXN];int f[MAXN];int stack[MAXN];int N;int main(){ while(scanf("%d", &N)!=EOF) { for(int i=1;i<=N;i++) scanf("%d", &A[i]); int top = 1; stack[1] = A[1]; f[1] = 1; for(int i=2;i<=N;i++) { if(A[i] > stack[top]) { stack[++top] = A[i]; f[i] = top; } else { int pos = lower_bound(stack, stack + top, A[i]) - stack; stack[pos] = A[i]; f[i] = pos; } } cout << top << endl; int t = top; for(int i=N;i>=1;i--) { if(f[i] == t) { lis[--t] = i; } if(t < 0) break; } for(int i=0;i<top;i++) cout << lis[i] << ' '; cout << endl; } return 0;}
0 0
- O(nlogn)的最长上升子序列并且记录所选择的数 模板
- 【模板】最长上升子序列 O(nlogn)
- <序列DP>O(nlogn)的最长上升子序列
- nuaa1561 Oliver的恋爱 (最长上升子序列O(nlogn))
- 最长上升子序列(LIS)长度的O(nlogn)算法
- 最长上升子序列的O(nlogn)搞法
- 优化的最长上升子序列LIS算法 O(nlogn)
- 最长上升子序列(LIS)长度的O(nlogn)算法 .
- 最长上升子序列(LIS)长度的O(nlogn)算法
- 最长上升子序列(LIS)长度的O(nlogn)算法
- 最长上升子序列(LIS)长度的O(nlogn)算法
- 最长上升子序列(LIS)长度的O(nlogn)算法
- 最长上升子序列(LIS)长度的O(nlogn)算法
- 最长上升子序列的O(nlogn)解法 (转)
- 最长上升子序列(LIS)长度的O(nlogn)算法
- 最长上升子序列(LIS)长度的O(nlogn)算法
- 最长上升子序列(LIS)长度的O(nlogn)算法
- 最长上升子序列O(nlogn)算法模板
- 关于Bugzilla过滤(不显示CLOSED的bug)
- nginx+iis实现负载均衡
- ODBC数据源管理器的认识-----0
- webpy使用说明(二)
- Java Scripting Programmer's Guide
- O(nlogn)的最长上升子序列并且记录所选择的数 模板
- windows下安装mongodb
- Win7、8系统下VLD引起0xc0150002错误
- 杀 mysql的进程
- 初学Http的冷知识
- #笔记#圣思园 JavaWeb 第49讲——定时器、两种事件绑定
- 【poj1006】【线性同余方程组】生理周期
- 第四篇 学习OpenCV之访问图像数据
- Message、Handler、MessageQueue、Looper之间关系图文总结