Grammarly

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

요약
문자열 s의 서로 다른 비어 있지 않은 부분 문자열을 정점으로 하고, a의 길이가 하나 짧은 부분 문자열 b로 향하는 간선을 둔 그래프에서 s에서 시작하는 단순 경로의 개수를 998244353으로 나눈 나머지를 구한다.
난이도

어려움10점 중 9점

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

문제

CauchySheep has a string s.

He looked at all its different non-empty substrings and added a directed edge from a to b if |b| + 1 = |a| and b is a substring of a.

You need to calculate the number of simple paths starting from s in this graph, modulo 998 244 353.

입력

The first line of the input contains a string s consisting of lowercase Latin letters: the string CauchySheep has (1 ≤ |s| ≤ 300 000).

출력

Output one integer: the number of simple paths starting from s in CauchySheep’s graph, modulo 998 244 353.

힌트

예제4

  1. 예제 1

    입력
    abba
    
    예상 출력
    13
    
  2. 예제 2

    입력
    benbeipo
    
    예상 출력
    255
    
  3. 예제 3

    입력
    iqiiiiiiqq
    
    예상 출력
    300
    
  4. 예제 4

    입력
    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
    
    예상 출력
    35