만드는 중입니다

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

임베딩

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

요약
문자열 A에서 각 팰린드롬이 앞의 팰린드롬 안에 严格히 들어가는 연쇄의 개수를 998244353으로 나눈 나머지로 구합니다.
난이도

보통10점 중 7점

유형
동적 계획법, 문자열 매칭, 누적 합
정답자
아직 제출이 없습니다

문제

길이가 nn인 문자열 AA가 주어진다. AA의 회문 부분 문자열을 생각하자. 부분 문자열은 시작 위치 ss와 끝 위치 ee(1≤s≤e≤n1 \le s \le e \le n)로 정해지며, 모든 정수 ii (0≤i≤e−s0 \le i \le e-s)에 대해 A[s+i]=A[e−i]A[s+i]=A[e-i]이면 회문이다.

깊이 k≥1k \ge 1의 임베딩은 kk개의 회문 부분 문자열로 이루어진 수열로, s1<…<sks_1 < \ldots < s_k이고 e1>…>eke_1 > \ldots > e_k를 만족한다. 즉 회문들이 러시아 인형처럼 엄격하게 안쪽으로 포함된다. AA의 임베딩 개수를 구하라.

입력

문자열 AA를 담은 한 줄이 주어진다. 문자열은 비어 있지 않고, 길이는 최대 10610^6이며, 영어 소문자로만 이루어진다.

출력

임베딩의 개수를 998 244 353998\,244\,353으로 나눈 나머지를 출력한다.

힌트

문자열 bonobo에서 깊이 1인 임베딩은 9개, 깊이 2인 임베딩은 6개, 깊이 3인 임베딩은 1개로, 총 16개이다.

예제2

  1. 예제 1

    입력
    bonobo
    
    예상 출력
    16
    
  2. 예제 2

    입력
    banana
    
    예상 출력
    18