最长不XX子序列
来源:互联网 发布:康熙字典体 mac 编辑:程序博客网 时间:2024/05/24 03:02
#include <iostream>#include <cstdio>using namespace std;int a[200020];int g[200020];int k;void Find(int i) //最长不下降子序列{ int l = 1, r = k; int ans = 0; while (l <= r) { int mid = (l+r) >> 1; if (g[mid] <= a[i]) { ans = mid; l = mid+1; } else r = mid-1; } if (g[ans+1] > a[i] || g[ans+1] == 0) g[ans+1] = a[i]; if (ans == k) k++;}void Find_(int i) //最长不上升子序列{ int l = 1, r = k; int ans = 0; while (l <= r) { int mid = (l+r) >> 1; if (g[mid] >= a[i]) { ans = mid; l = mid+1; } else r = mid-1; } if (g[ans+1] < a[i] || g[ans+1] == 0) g[ans+1] = a[i]; if (ans == k) k++;}int main(){int n;cin >> n;for (int i=1; i<=n; i++) cin >> a[i];g[1] = a[1]; k = 1;for (int i=2; i<=n; i++) Find(i);cout << "最长不下降子序列的的长度是:" << k << endl;for (int i=0; i<=n; i++) g[i] = 0;g[1] = a[1]; k = 1;for (int i=2; i<=n; i++) Find_(i);cout << "最长不上升子序列的长度是:" << k << endl;return 0;}
0 0
- 最长不XX子序列
- 最长不XX子序列
- 最长xx子序列
- 最长XX子序列N*LOGN算法
- 最长不下降子序列
- 最长不上升子序列
- 最长不下降子序列
- 最长不下降子序列
- 最长不下降子序列
- 最长不下降子序列
- 最长不下降子序列
- 最长不下降子序列
- 最长不下降子序列
- 最长不下降子序列
- 最长不下降子序列
- 最长不下降子序列
- 最长不下降子序列
- 最长不下降子序列
- 最长不XX子序列
- System.AccessViolationException类型的未经处理的异常在System.Data.dll中发
- 深入解析DC/OS 1.8 – 高可靠的微服务及大数据管理平台
- Android系统Recovery工作原理之使用update.zip升级过程分析(一)---update.zip包的制作
- maven项目遇到红叉错误
- 最长不XX子序列
- 大数据实战(上)-HBASE原理
- web开发3--cookie&session
- Android中Xposed框架篇---修改系统位置信息实现自身隐藏功能
- Python与图像处理4
- 点击按钮将某个View换成碎片(Fragment)思路
- java设计模式,解释器模式
- java中类与类的之间的说不清道不明的关系
- C++远征之友元函数篇<->