• HDU 5842 Lweb and String


    Lweb and String

    Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)
    Total Submission(s): 368    Accepted Submission(s): 243


    Problem Description
    Lweb has a string S.

    Oneday, he decided to transform this string to a new sequence. 

    You need help him determine this transformation to get a sequence which has the longest LIS(Strictly Increasing). 

    You need transform every letter in this string to a new number.

    A is the set of letters of SB is the set of natural numbers. 

    Every injection f:AB can be treat as an legal transformation. 

    For example, a String “aabc”, A={a,b,c}, and you can transform it to “1 1 2 3”, and the LIS of the new sequence is 3. 

    Now help Lweb, find the longest LIS which you can obtain from S.

    LIS: Longest Increasing Subsequence. (https://en.wikipedia.org/wiki/Longest_increasing_subsequence)
     
    Input
    The first line of the input contains the only integer T,(1T20).

    Then T lines follow, the i-th line contains a string S only containing the lowercase letters, the length of S will not exceed 105.
     
    Output
    For each test case, output a single line "Case #x: y", where x is the case number, starting from 1. And y is the answer.
     
    Sample Input
    2 aabcc acdeaa
     
    Sample Output
    Case #1: 3
    Case #2: 4
     
    Author
    UESTC
     
    Source

    解析:说了那么多,其实很简单,就是求有多少种字母。

    #include <cstdio>
    #include <cstring>
    
    const int MAXN = 1e5+5;
    char s[MAXN];
    bool vis[30];
    
    int main()
    {
        int t, cn = 0;
        scanf("%d", &t);
        while(t--){
            scanf("%s", s);
            memset(vis, 0, sizeof(vis));
            int res = 0;
            for(int i = 0; s[i] != ''; ++i){
                if(!vis[s[i]-'a']){
                    vis[s[i]-'a'] = true;
                    ++res;
                }
            }
            printf("Case #%d: %d
    ", ++cn, res);
        }
        return 0;
    }
    

      

  • 相关阅读:
    NOIP2018 复赛提高组一等奖获奖名单
    JZOJ 5222. 【GDOI2018模拟7.12】A(权值线段树)
    NOIP2018 提高组复赛成绩-广东
    NOIP2018 总结
    NOIP 复赛注意事项
    JZOJ 5168. 冲击哥(贪心)
    数据库
    估计理论简介
    KMP
    从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。
  • 原文地址:https://www.cnblogs.com/inmoonlight/p/5773467.html
Copyright © 2020-2023  润新知