Lweb 및 문자열 HDU - 5842 (2016 중국어 대학생 프로그래밍 대회 - 네트워크 시험)

 
물 문제
 
Lweb 문자열을 가지고  S. 

Oneday, 그는 새로운 시퀀스에이 문자열을 변환하기로 결정했다. 

당신은 그 (엄밀히 증가) 가장 긴 LIS를 가지고 시퀀스를 얻기 위해 이러한 변화를 결정하는 데 도움이 필요합니다. 

새 번호로이 문자열의 모든 문자를 변환해야합니다. 

A는  글자들의 세트 인  S S,  B B는 자연수의 집합이다. 

모든 주입  F는 : →의 B는  법적인 변화로서 취급 될 수있다. 

예를 들어, 문자열 "AABC"  A는 = { A는 , B는 , (C) },   그리고 그 "1 1 2 3"을 변환 할 수 있으며, 새로운 시퀀스의 LIS 3이다. 

지금 당신은에서 얻을 수있는 가장 긴 LIS 찾아 Lweb 도움  S S. 

가장 긴 증가 서브 시퀀스 : LIS를. (https://en.wikipedia.org/wiki/Longest_increasing_subsequence)
 

입력

입력의 첫 번째 행은 정수만을 포함  T , ( 1 T 20 )

이어서 T 라인은 i 번째 라인은 문자열을 포함, 따라 S 만 소문자를 포함,의 길이  S S는 초과하지 않습니다 (105).

 

산출

출력 한 줄 "케이스 #x를 : Y"테스트 케이스를 들어, X 및 Y는 1부터 케이스 번호 인 해답이다.

 

샘플 입력

2 
aabcc의 
acdeaa

샘플 출력

사례 # 1 : 3 
사례 # 2 : 4

질문의 의미 :

이 질문은 우리가 상황이, 반나절 무엇을 모르고있다가 추구 얼마나 많은 다른 문자입니다



1 #INCLUDE <STDIO.H>
 2 #INCLUDE < 문자열 .H>
 3  
4  INT ) (주
 5  {
 6      INT LEN, I, t, 책 [ 105 ];
7      숯불 이 [ 100005를 ];
8      는 scanf ( " %의 D " , t);
9      INT CAS = 0 , ANS;
10      동안 (t-- )
 11      {
 12          는 scanf ( " %의 S " , a);
13          ANS = 0;
14          LEN = 용 의 strlen (a);
15          memset 함수 (책, 0 , sizeof 연산자 (책));
(16)          에 대한이 (I = 0 ; I <렌; 내가 ++ )
 17          {
 18 일              경우 (책 [A [I] - ' ' ] == 0 )
 19             {
 20                  ANS ++ ;
21                  책 [A [I] - ' ' ] = 1 ;
22             }
 23         }
 24          의 printf (   " 케이스 %의 D %의 D \ 없음 " , ++ CAS, ANS);
25      }
 26      반환  0 ;
27 }

 



추천

출처www.cnblogs.com/0xiaoyu/p/11370170.html