아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

아나그램 회피

시간 제한1초메모리 제한64 MB

요약
문자열 s가 주어질 때, 고른 것들 중 서로 애너그램 관계인 두 문자열이 없도록 선택할 수 있는 부분수열의 최대 개수를 구한다.
난이도

보통10점 중 7점

유형
동적 계획법, 조합론, 문자열, 수학
정답자
아직 제출이 없습니다

문제

두 문자열이 아나그램이라는 것은 첫 번째 문자열의 글자를 재배열해 두 번째 문자열로 만들 수 있다는 뜻이다. 예를 들어 "listen"과 "silent"는 아나그램이지만, "master"와 "nearest"는 아니다.

문자열 s=s1s2…sns = s_1 s_2 \dots s_n의 부분수열은 1≤a1<a2<⋯<ak≤n1 \le a_1 < a_2 < \dots < a_k \le n인 문자열 sa1sa2…saks_{a_1} s_{a_2} \dots s_{a_k}이다.

문자열 ss가 주어질 때, 결과 목록에 있는 어떤 두 문자열도 아나그램이 되지 않도록 부분수열을 나열할 수 있는 최대 개수를 구하라.

입력

영소문자로 이루어진 길이 6060 이하의 문자열 ss가 한 줄에 주어진다.

출력

답을 한 수로 출력한다.

힌트

첫 번째 예시에서 결과 목록은 "j", "o", "jj", "jo", "oo", "jjo", "joo", "jojo"가 될 수 있다.

예제2

  1. 예제 1

    입력
    jojo
    
    예상 출력
    8
    
  2. 예제 2

    입력
    uralchampionship
    
    예상 출력
    20735