【codevs 3995】最长严格上升子序列(加强版)
2015-10-22 11:06
323 查看
模板题
nlog(n)
nlog(n)
[code]#include <iostream> #include <cstdio> #include <algorithm> #include <cstring> using namespace std; const int MAXN = 1000000 + 5; int g[MAXN],len,n,a[MAXN]; int find(int x) { int l = 0,r = n; int mid = (l + r) / 2; while(l <= r) { if(g[mid] < x) l = mid + 1; else if(g[mid] > x) r = mid - 1; else return mid; mid = (l + r) / 2; } return l; } void dpdpd() { len = 1; memset(g,0x3f,sizeof(g)); g[0] = -1; g[1] = a[1]; for(int i = 2;i <= n;i ++) { int j = find(a[i]); g[j] = min(g[j],a[i]); len = max(len,j); } return; } int main() { scanf("%d",&n); for(int i = 1;i <= n;i ++) scanf("%d",&a[i]); dpdpd(); printf("%d\n",len); return 0; }
相关文章推荐
- Druid是一个JDBC组件 数据库语句监控
- mac安装hadoop伪分布式
- Android内存分析和调优
- Google工程师:复杂是软件的死敌
- 近期最新阅读分享
- PowerDesigner生成OOM时类名属性名转换
- 可输入的模糊搜索ComBox控件
- Cordova使用教程
- 存储过程的写法 要查询存在于表A而不在表B的所有数据 也就是要查询A表中所有不与B交集的数据
- hdu 4059 小学生容斥
- 5-5 Tree Traversals Again (25分)
- 解决eclipse乱码问题
- iOS 9适配系列教程
- VC ++ Socket传输文件
- document与window
- Oracle 监听(Listener) 中 services 说明
- AndroidManifest.xml中的minSdkVersion、targetSdkVersion、maxSdkVersion和project.properties中target区别
- Ubuntu14 安装Oracle 11g
- Determine the tombstone lifetime for the forest
- [Merge Sort] Merge Two Sorted Lists