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;
    }












  • 相关阅读:
    关于excel导入、导出(POI)
    关于上传图片和显示
    关于sql连接查询(内联、左联、右联、全联)
    关于面试问题
    关于excel导出
    响应式布局和自适应布局的不同
    关于时间范围查询
    HDU 6166 Senior Pan(二进制分组+最短路)
    HUAS 2017暑假第六周比赛-题解
    AtCoder Regular Contest 081
  • 原文地址:https://www.cnblogs.com/geziyu/p/10045816.html
Copyright © 2011-2022 走看看