nyoj 题目17 单调递增最长子序列
来源:互联网 发布:软件开发 学校 编辑:程序博客网 时间:2024/05/24 02:35
http://acm.nyist.net/JudgeOnline/problem.php?pid=17
单调递增最长子序列
时间限制:3000 ms | 内存限制:65535 KB
难度:4
- 描述
- 求一个字符串的最长递增子序列的长度
如:dabdbf最长递增子序列就是abdf,长度为4- 输入
- 第一行一个整数0<n<20,表示有n个字符串要处理
随后的n行,每行有一个字符串,该字符串的长度不会超过10000 - 输出
- 输出字符串的最长递增子序列的长度
- 样例输入
3aaaababcabklmncdefg
- 样例输出
137
#include<stdio.h>#include<string.h>#define MAX 10000int main(){char s[MAX+10];int a[MAX+10],T,n,i,j,k;scanf("%d",&T);while(T--){scanf("%s",s);n=strlen(s);memset(a,0,sizeof(a));for(i=1,a[0]=1,k=0;i<n;i++){//时间复杂度O(n^n) a[i]=1;for(j=i-1;j>=0;j--)//从i前一位i-1往前扫描,扫描第一个比s[i]小的,为s[j],然后a[i]=a[j]+1 if(s[i]>s[j]&&a[i]<=a[j]/*特别注意这里*/){ a[i]=a[j]+1; } if(a[i]>k)//每一次都比较,把最大的存到k中 k=a[i]; } //for(i=0;i<n;i++) //printf("%d ",a[i]); //printf("\n"); if(k==0)//特别注意这里 k+=1; printf("%d\n",k); } return 0; }
0 0
- NYOJ 题目17 单调递增最长子序列 (DP)
- nyoj 题目17 单调递增最长子序列
- NYOJ 题目17 单调递增最长子序列
- NYOJ 题目17 单调递增最长子序列
- NYOJ-17:单调递增最长子序列
- NYOJ 17 单调递增最长子序列
- NYOJ 17 单调递增最长子序列
- NYOJ 17-单调递增最长子序列
- nyoj-17-单调递增最长子序列
- NYOJ 17 单调递增最长子序列
- NYOJ 17 单调递增最长子序列
- NYOJ 17 最长单调递增子序列
- nyoj 17 单调递增最长子序列
- NYOJ 17 单调递增最长子序列
- nyoj 17 单调递增最长子序列
- nyoj 17 单调递增最长子序列
- nyoj 17 单调递增最长子序列
- nyoj 17 单调递增最长子序列
- Android笔记 对话框demo大全
- 那些网站不招搜索引擎的喜欢?我来告诉你!
- java读取properties配置文件
- classpath*:与classpath:的区别
- springmvc+uploadify3.2
- nyoj 题目17 单调递增最长子序列
- 线程取消(pthread_cancel)
- datagridview Cell中空值的处理
- UnityShader初识
- 开机时自动启动任务管理器,怎么设置
- orcal存储过程事例
- C++ 学习笔记_0015_递归(读懂C++递归程序)
- myeclipse的快捷键
- Android控件拖拽功能的实现