最长单调递增子序列O(nlogn)
来源:互联网 发布:php bootstrap 编辑:程序博客网 时间:2024/06/02 07:28
#include "iostream"#include "fstream"using namespace std;/*b[k]表示长度为i的子序列c[i]中,长度为k的最长单调递增子序列的最小结尾元素值当c[i]>=b[k], k = k + 1; b[k] = c[i]否则,将c[i]放置到b[]中适当位置*/int b[100];int c[100];//二分搜索法在b[1,k]中找到下标h,使得b[h-1]<=c[i]<=b[h]int binary(int i, int k){ int l, h; if(c[i] < b[1]) return 1; for(l=1, h=k; l!=h-1;) { if(b[k=(l+h)/2] <= c[i]) l = k; else h = k; } return h;}int increase(int n){ int i = 1, k; b[1] = c[1]; for(i=2, k=1; i<=n; i++) if(c[i] >= b[k]) b[++k] = c[i]; else b[binary(i, k)] = c[i]; return k;}int main(){ int n; cout << "输入序列长度:" ; cin >> n; cout << "输入子序列:"; for(int i=1; i<=n; i++) cin >> c[i]; int count = increase(n); cout << "最长单调递增子序列为:" << count << endl; return 0;}
0 0
- 单调递增最长子序列 O(nlogn)
- 最长单调递增子序列O(nlogn)
- 最长单调递增子序列O(NlogN)算法
- 模板[最长递增子序列] O(nlogn)
- 最长递增子序列 O(NlogN)算法
- 最长递增子序列 O(NlogN)算法
- 最长递增子序列 O(nlogn)
- 最长递增子序列 O(NlogN)算法
- 最长递增子序列 O(NlogN)算法
- 最长递增子序列O(NlogN)
- 最长递增子序列-O(NlogN)
- 最长递增子序列 O(NlogN)算法
- 最长递增子序列 O(NlogN)算法
- 最长递增子序列 O(NlogN)算法
- O(nlogn)最长递增子序列
- 最长递增子序列 O(NlogN)算法
- 最长递增子序列 O(NlogN)算法
- 最长递增子序列 O(NlogN)算法
- ipcs查看消息队列命令
- Android之Activity生命周期
- 关于InputStream 中available()方法的使用问题
- HDOJ-1012(u Calculate e)(输出格式)
- 几个重要windows驱动函数分析
- 最长单调递增子序列O(nlogn)
- 微信客服推送信息接口报45015错误原因?
- 使用BIOS中断和汉字库显示汉字
- iOS中UIScrollView和UIPageControl以及NSTimer的综合使用
- C#连接、访问MySQL数据库
- 为sourceinsight添加makefile、kconfig、*.S文件支持
- 11.3 公用对话框
- Linux下命令行显示当前全路径方法
- Android屏幕分辨率适配