最大递增/递减/非递增/非递减子序列的长度(二分优化)
来源:互联网 发布:幼儿教师美工作品图片 编辑:程序博客网 时间:2024/05/19 13:13
默认是单调递增:
#include<stdio.h>#include<iostream>#include<string.h>#include<algorithm>using namespace std;int a[1000005];char c[1000005];int maxv[1000005];int bin(int x,int len){ int left,right,mid; left=1; right=len; while(left<=right) { mid=left+(right-left)/2; if(maxv[mid]==x) return mid;//(2)return mid+1;//非递减 else if(maxv[mid]<x)//(1)maxv[mid]>x:单调递减 left=mid+1; else right=mid-1; } return left;}int main(){ int n,i,j,len; scanf("%d",&n); while(n--) { scanf("%s",c); for(i=0; i<strlen(c); i++) { a[i+1]=c[i]-'a'; } maxv[1]=a[1]; len=1; for(i=2; i<=strlen(c); i++) { if(a[i]>maxv[len])//(1) < maxv[++len]=a[i]; else { int pos=bin(a[i],len); maxv[pos]=a[i]; } } printf("%d\n",len); }}
0 0
- 最大递增/递减/非递增/非递减子序列的长度(二分优化)
- 递增排序,递减排序,非递减排序,非递增排序
- 非递减排列 非递增排列 递减排列 递增排列
- 最长递增(递减)子序列
- 最长递增/递减子序列
- 中最长的单调递减(或递增)子序列
- 二分查找非递减序列的边界问题
- 最长非递减子序列的应用
- 最长非递减子序列
- AYITACM2016省赛第三周 B-递增递减子序列(dp+二分)
- 序列的最长递增、递减序列
- 应用递推的方法求最长非递减子序列的长度
- 求最长不增子序列、最长单调递减子序列、最长不降子序列、最长单调递增子序列长度
- hdu5256序列变换(非递减子序列)
- hunnu 11182#最长非递减子序列
- 最长非递减子序列模板
- TOJ 5135: 连续非递减子序列
- 关于二分法求单调递增子序列以及单调递减子序列的领悟
- FL Studio混合器之效果器插槽部分讲解
- java 一个数组循环右移K位
- CUDA:向量化加载提升性能
- java流的修饰;一个输入流通向两个管道的错误;Properties.load(InputStream)
- UEFI原理与编程(十):UEFI的基础服务-系统表
- 最大递增/递减/非递增/非递减子序列的长度(二分优化)
- UDP remote server--Python网络编程学习笔记
- leetcode:343. Integer Break
- 软编码Flv 到Mp4 容器(一)
- HDU 5978 Convex(几何水题)
- APP安全报告第十五期:音乐APP的安全性极低,用户信息存在泄露风险!
- 一个简单的装饰器
- 复高斯分布
- IOS 字符编码转码