zoukankan      html  css  js  c++  java
  • nyoj 17 单调递增最长子序列

    单调递增最长子序列

    时间限制: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 n,m,j,i,l,sum;;
    	char s[10100];
    	int dp[10100];
    	scanf("%d",&n);
    	while(n--)
    	{
    		scanf("%s",s);
    		l=strlen(s);
    		for(i=0;i<l;i++)
    		dp[i]=1;             //用来记录前i项中符合条件的个数 
    		for(i=1;i<l;i++)
    		for(j=i-1;j>=0;j--)
    		{
    			if(s[i]>s[j])
    			if(dp[i]<dp[j]+1)
    			dp[i]=dp[j]+1;
    		}
    		sum=0;
    		for(i=0;i<l;i++)
    		{
    		    if(sum<dp[i])
    		    sum=dp[i];
    		}
    		printf("%d
    ",sum);
    	}
    	return 0;
    }
    

      



  • 相关阅读:
    Luogu P3275 糖果
    Python基础学习
    SharePoint 2013
    Office
    KnockoutJS
    SharePoint 2013
    Bootstrap
    SharePoint 2013
    CSS
    AngularJS
  • 原文地址:https://www.cnblogs.com/tonghao/p/4410339.html
Copyright © 2011-2022 走看看