nyoj17单调递增最长子序列
2015-07-22 21:19
417 查看
/*单调递增最长子序列
时间限制:3000 ms | 内存限制:65535 KB
难度:4
描述 求一个字符串的最长递增子序列的长度
如:dabdbf最长递增子序列就是abdf,长度为4
输入第一行一个整数0<n<20,表示有n个字符串要处理
随后的n行,每行有一个字符串,该字符串的长度不会超过10000
输出输出字符串的最长递增子序列的长度样例输入3
aaa
ababc
abklmncdefg
样例输出1
3
7*/
/*单调递增最长子序列
时间限制:3000 ms | 内存限制:65535 KB
难度:4
描述 求一个字符串的最长递增子序列的长度
如:dabdbf最长递增子序列就是abdf,长度为4
输入第一行一个整数0<n<20,表示有n个字符串要处理
随后的n行,每行有一个字符串,该字符串的长度不会超过10000
输出输出字符串的最长递增子序列的长度样例输入3
aaa
ababc
abklmncdefg
样例输出1
3
7*/
<span style="font-size:18px;">#include<stdio.h> #include<string.h> #include<algorithm> using namespace std; char a[10010]; int dp[10010]; int main() { int i,j,n,len; scanf("%d",&n); getchar(); while(n--) { gets(a); len=strlen(a); for(i=0;i<len;i++) dp[i]=1; for(i=len-2;i>=0;i--) { for(j=i+1;j<len;j++) { if(a[i]<a[j]&&dp[i]<dp[j]+1) dp[i]=dp[j]+1; } } sort(dp,dp+len); printf("%d\n",dp[len-1]); } return 0; }</span>
相关文章推荐
- 获取文件属性。链接文件(硬链接符号链接)
- 关于java基础--日期类与日历类Calendar详解测试
- java常见几种排序
- bitnami-redmine服务器迁移
- Android API Guides 阅读笔记(1)----Application Fundamentals
- java之设计模式---模板设计模式
- HDU 1059 Dividing(多重背包)
- 题目收集
- Azure Backup (1) 将SQL Server 2012虚拟机中数据库备份到Azure Storage
- Snail—UI学习之动画Animations
- PHP libcurl使用总结
- android view 绘制流程
- web001-html,css,js
- Git的Patch功能
- 鸽巢原理(Pigeonhole Principle)
- 网络基础知识--网络架构及OSI七层协议
- 微信投票刷票的方法
- Scala详解-----------控制结构和函数
- (转)手机网站判断及跳转
- 数据结构——UVA 1600 机器人巡逻