zoukankan      html  css  js  c++  java
  • 单调递增最长子序列 分类: 动态规划 算法 2014-10-29 13:11 74人阅读 评论(0) 收藏

    单调递增最长子序列

    时间限制:3000 ms  |  内存限制:65535 KB
    难度:4
    描述
    求一个字符串的最长递增子序列的长度
    如:dabdbf最长递增子序列就是abdf,长度为4
    输入
    第一行一个整数0<n<20,表示有n个字符串要处理
    随后的n行,每行有一个字符串,该字符串的长度不会超过10000
    输出
    输出字符串的最长递增子序列的长度
    样例输入
    3
    aaa
    ababc
    abklmncdefg
    样例输出
    1
    3
    7


    #include<stdio.h>
    #include<string.h>
    
    int main(){
    	int m,n,r,i,j;
    	char a[10001];
    	int s[10001];
    	scanf("%d",&r);
    	while(r--)
    	{
    		int maxlen=1;
    		
    		scanf("%s",a);
    		for(i=0;i<strlen(a);i++)
    		{
    			s[i]=1;
    		}
    		for(i=0;i<strlen(a);i++)
    		{
    			for(j=0;j<i;j++)
    			{
    				if(a[i]>a[j]&&s[i]<s[j]+1)
    				{
    					s[i]=s[j]+1;
    					if(s[i]>=maxlen){
    						maxlen=s[i];
    					}
    				}
    			}
    		
    		}
    		printf("%d
    ",maxlen);
    	
    	}
    	return 0;
    
    
    }

    动态规划复杂度太高,还有改进空间

    版权声明:本文为博主原创文章,未经博主允许不得转载。

  • 相关阅读:
    Mac下安装brew
    Mac下安装node.js
    Mac下mysql服务端密码重置及环境配置
    Mac配置jdk以及maven
    Mac下卸载jdk
    34个漂亮的应用程序后台管理界面(系列一)
    ViewState
    get和post
    无刷新 分页评论
    isPostBack原理
  • 原文地址:https://www.cnblogs.com/learnordie/p/4656994.html
Copyright © 2011-2022 走看看