만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

Filipp Rukhovich

시간 제한6초메모리 제한512 MB

요약
문자열의 모든 부분수열에 대해 회문도를 합산하되, 같은 부분수열도 등장 횟수만큼 세어 998244353으로 나눈 나머지를 구한다.
난이도

어려움10점 중 8점

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

문제

길이 kk인 문자 수열 tt의 팰린드롬성은 0≤i<k−i−10 \leq i < k - i - 1이고 ti=tk−1−it_i = t_{k-1-i}인 인덱스 ii의 개수이다. 인덱스는 0부터 시작한다.

문자열 ss가 주어진다. 모든 부분수열에 대한 팰린드롬성의 합을 구하여라. 부분수열로서 여러 번 나타나는 수열은 여러 번 센다. 즉, 서로 같은지와 무관하게 2∣s∣2^{|s|}개의 모든 부분수열에 대해 팰린드롬성의 합을 구한다.

정답을 998244353998244353으로 나눈 나머지를 출력하여라. 형식적으로, 실제 답이 yy이고 출력한 답이 xx일 때 −263≤x<263-2^{63} \leq x < 2^{63}이고 x−yx-y가 998244353998244353으로 나누어떨어지면 정답으로 인정된다.

입력

첫째 줄에 길이가 123456123456 이하인, 영소문자로 이루어진 비어 있지 않은 문자열 ss가 주어진다.

출력

ss의 모든 부분수열에 대한 팰린드롬성의 합을 998244353998244353으로 나눈 나머지를 한 줄에 출력한다.

예제5

  1. 예제 1

    입력
    xxx
    
    예상 출력
    4
    
  2. 예제 2

    입력
    abacaba
    
    예상 출력
    80
    
  3. 예제 3

    입력
    ypiiouiuiputrhgogghjhp
    
    예상 출력
    1084841
    
  4. 예제 4

    입력
    dfgfhdgdhjgfdhgdfhgfdgfddfg
    
    예상 출력
    190900560
    
  5. 예제 5

    입력
    qweqwewqewqeqweqwqwewqrqwrrew
    
    예상 출력
    910048289