单调递增最长子序列

来源:互联网 发布:随着大数据时代的来临 编辑:程序博客网 时间:2024/06/05 01:04

单调递增最长子序列

时间限制:3000 ms  |  内存限制:65535 KB
难度:4
描述
求一个字符串的最长递增子序列的长度
如:dabdbf最长递增子序列就是abdf,长度为4
输入
第一行一个整数0<n<20,表示有n个字符串要处理
随后的n行,每行有一个字符串,该字符串的长度不会超过10000
输出
输出字符串的最长递增子序列的长度
样例输入
3aaaababcabklmncdefg
样例输出
137
来源
经典题目
上传者
iphxer

#include<iostream>#include<string.h>#define N 10000+10using namespace std;int main(){int n,i,j,max,len;char a[N];int dp[N];cin>>n;while(n--){cin>>a;len=strlen(a);dp[0]=1;for(i=1;i<len;i++){max=0;for(j=i-1;j>=0;j--){if(a[i]>a[j]&&max<dp[j])max=dp[j];}dp[i]=max+1;}max=dp[0];for(i=0;i<len;i++){if(max<dp[i])max=dp[i];}cout<<max<<endl;}return 0;}


0 0
原创粉丝点击