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

    【动态规划】单调递增最长子序列

    时间限制: 1 Sec  内存限制: 128 MB

    题目描述

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

    输入

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

    输出

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

    样例输入

    3
    aaa
    ababc
    abklmncdefg
    

    样例输出

    1
    3
    7

    递增子序列可以不是连续的。。。
     1 #include <iostream>
     2 #include <algorithm>
     3 #include <cstring>
     4 #include <stdio.h>
     5 
     6 using namespace std;
     7 
     8 char a[11111],sum[11111];
     9 int n,ans;
    10 
    11 int main()
    12 {
    13     while(cin>>n)
    14     {
    15         while(n--)
    16         {
    17             cin>>a;
    18             ans=1;
    19             memset(sum,1,sizeof(sum));
    20             for(int i=1;i<strlen(a);i++)
    21             {
    22                 int tag=0;
    23                 for(int j=0;j<i;j++)
    24                 {
    25                     if(a[j]<a[i]&&tag<sum[j])
    26                     {
    27                         tag=sum[j];
    28                     }
    29                 }
    30                 sum[i]+=tag;
    31                 if(ans<sum[i])
    32                     ans=sum[i];
    33             }
    34             cout<<ans<<endl;
    35         }
    36     }
    37     return 0;
    38 }
     
  • 相关阅读:
    [译]理解 iOS 异常类型 <🌟>
    LeetCode 24. 两两交换链表中的节点
    解决The operation couldn’t be completed. Unable to log in with account
    <Typora> 常用操作快捷键
    LeetCode 23. 合并K个升序链表
    CSS盒子模型
    CCS属性
    CSS
    form表单
    html
  • 原文地址:https://www.cnblogs.com/asuml/p/5724880.html
Copyright © 2011-2022 走看看