zoukankan      html  css  js  c++  java
  • CCPC网络赛,HDU_5842 Lweb and String

    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 $S$, $B$ is the set of natural numbers.

    Every injection $f: A ightarrow B$ 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, (1 leq T leq 20)$.

    Then $T$ lines follow, the i-th line contains a string $S$ only containing the lowercase letters, the length of $S$ will not exceed $10^5$.
     
    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
    代码如下:
     1 #include <iostream>
     2 #include <cstdio>
     3 #include <cstring>
     4 #include<cmath>
     5 
     6 using namespace std;
     7 
     8 char s[100010];
     9 int w[26];
    10 
    11 int main()
    12 {
    13     int t;
    14     int d = 0;
    15     int sum;
    16     scanf("%d",&t);
    17     while(t--)
    18     {
    19         sum = 0;
    20         scanf("%s",&s);
    21         memset(w,0,sizeof(w));
    22         for (int i=0;i<strlen(s);i++)
    23         {
    24             if (w[s[i]-'a'] == 0){
    25                 sum++;
    26                 w[s[i]-'a'] = 1;
    27             }else
    28             continue;
    29         }
    30         printf("Case #%d: %d
    ",++d,sum);
    31     }
    32     return 0;
    33 }

    思路解析:

                 这题就是题意的问题。A不出来都是被样例迷惑了!样例毁一生2333333,有时候理解真的比直接敲更有用。

  • 相关阅读:
    防止IE缓存jquery ajax 内容
    MyBatis中主要类的生命周期和应用范围
    MyBatis学习练习
    MySql 日期格式化函数date_format()
    getFields()和getDeclaredFields()
    Java final修饰形参
    随笔
    Java SSH远程执行Shell脚本实现(转)
    jQuery 属性操作
    [git]解决:git config --global push.default matching
  • 原文地址:https://www.cnblogs.com/xzt6/p/5774782.html
Copyright © 2011-2022 走看看