nyoj 17 单调递增最长子序列
2016-05-03 09:22
344 查看
单调递增最长子序列
时间限制:3000 ms | 内存限制:65535 KB难度:4
描述求一个字符串的最长递增子序列的长度
如:dabdbf最长递增子序列就是abdf,长度为4
输入第一行一个整数0<n<20,表示有n个字符串要处理
随后的n行,每行有一个字符串,该字符串的长度不会超过10000
输出输出字符串的最长递增子序列的长度
样例输入
3 aaa ababc abklmncdefg
样例输出
1 3 7
来源经典题目
上传者iphxer
#include<stdio.h> #include<string.h> int bs(char b[],int len,char cur) { int left=0,right = len-1,mid; while(left<=right){ mid=left+(right-left)/2; if(b[mid]>cur) right=mid-1; else if(b[mid]<cur) left=mid+1; else return mid; } return left; } char arr[10005],v[10005]; int main() { int i,n,len,ans; scanf("%d",&n); while(n--){ len=1; scanf("%s",arr); ans=strlen(arr); v[0]=arr[0]; for(i=1;i<ans;i++){ if(arr[i]>v[len-1]){ v[len]=arr[i]; len++; } else v[bs(v,len,arr[i])]=arr[i]; } printf("%d\n",len); } return 0; }
相关文章推荐
- 程序员的成长阶梯和级别[转]
- iOS开发——剪切板
- HTTPS科普扫盲帖【转】
- Sping--Id, Name
- iOS-MVVM设计模式
- a different object with the same identifier value was already associated with the session:
- Activity和fragment生命周期总结
- C语言(数组啥时候变指针)
- iOS中的NSTimer定时器的初步使用解析
- SQL Server 2005 中使用 Try Catch 处理异常
- OpenCV学习笔记_图像扭曲及旋转操作
- iOS开发——NSDate(待续...)
- ubuntu 16.04 mysql 相关
- Hibernate的数据库操作
- tomcat启动超时 eclipse
- old bill
- LeetCode "Top K Frequent Elements"
- 打造强大的BaseModel(1):让Model自我描述
- iOS 并发概念浅析
- fieldset属性