• 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>
    #include<algorithm>
    using namespace std;
    char s[10050];
    int dp[10050];
    int main()
    {
    	int N;
    	scanf("%d",&N);
    	while(N--)
    	{
    		memset(s,'',sizeof(s));
    		memset(dp,0,sizeof(dp));
    		scanf("%s",s);
    		int len =strlen(s);
    		int i,j,ans=0;
    		dp[0]=1;
    		for(i=0;i<len;i++)
    		{
    			int Max=0;
    			for(j=0;j<i;j++)
    			{
    				if(s[i]>s[j]&&Max<dp[j])
    					Max=dp[j];
    			}
    			dp[i]=Max+1;
    			if(ans<dp[i])
    				ans=dp[i]; 
    		}
    		printf("%d
    ",ans);
    	}
    	return 0;
    }         
    

      

  • 相关阅读:
    Python学习 :面向对象 -- 三大特性
    Python学习 :面向对象(一)
    小米oj #40 找小“3”
    第三次作业
    排序算法模板
    树状数组求逆序数
    最短路模板
    字典树模板
    LCS
    多项式朴素乘法
  • 原文地址:https://www.cnblogs.com/zhangliu/p/7053320.html
Copyright © 2020-2023  润新知