zoukankan      html  css  js  c++  java
  • 单调递增最长子序列(动态规划)

    单调递增最长子序列

    题目描述:

    求一个字符串的最长递增子序列的长度
    如:dabdbf最长递增子序列就是abdf,长度为4

    输入描述:

    第一行一个整数0<n<20,表示有n个字符串要处理
    随后的n行,每行有一个字符串,该字符串的长度不会超过10000

    输出描述:

    输出字符串的最长递增子序列的长度

    样例输入:

    3
    aaa
    ababc
    abklmncdefg

    样例输出:

    1
    3
    7
    AC代码:
     1 #include<stdio.h>
     2 #include<string.h>
     3 #include<algorithm>
     4 using namespace std;
     5 char s[10005];
     6 int dp[10005];
     7 int main()
     8 {
     9     int t;
    10     scanf("%d",&t);
    11     while(t--)
    12     {
    13         scanf("%s",s);
    14         int len=strlen(s);
    15         memset(dp,0,sizeof(dp));
    16       
    17         for(int i=0;i<len;i++)
    18         {
    19             dp[1]=1;
    20             for(int j=0;j<i;j++)
    21             {
    22                 if(s[i]>s[j]) 
    23                 dp[i]=max(dp[i],dp[j]+1);
    24             }
    25         }
    26         sort(dp,dp+len);
    27         printf("%d
    ",dp[len-1]);
    28     }
    29     return 0;
    30 }
    显示答案错误:
    #include<iostream>
    #include<cstdio>
    #include<cstring>
    using namespace std;
    
    char str[10005],a[10005];
    int dp[10005];
    
    int main(){
        int n;
        scanf("%d",&n);
        while( n-- ){
            scanf("%s",a);
            int len = strlen(a);
            for( int i = 0; i < len; i++ )
                str[i+1] = a[i];
            dp[1] = 1;
            for( int i = 2; i <= len; i++ ){
                dp[i] = 0;
                for( int j = 1; j <= len; j++ ){
                    if( str[i] > str[j] )
                        dp[i] = max(dp[i],dp[j]+1);
                }
            }
            int ans = 0;
            for( int i = 1; i <= len; i++ )
                ans = max(ans,dp[i]);
            printf("%d
    ",ans);
        }
        return 0;
    }












  • 相关阅读:
    集合——iterator迭代器
    集合——顶层collection接口(单列集合)
    集合——集合框架
    构造方法
    接口作为方法的参数或返回值——List接口
    接口作为成员变量——实现类和匿名内部类和匿名对象
    距离和相似度度量
    Kmeans算法与KNN算法的区别
    linux命令
    MapReduce初级案例
  • 原文地址:https://www.cnblogs.com/geziyu/p/10045816.html
Copyright © 2011-2022 走看看