#P15760. 子串语法图

    ID: 14972 传统题 2000ms 256MiB 尝试: 2 已通过: 1 难度: 10 上传者: 标签>字符串后缀自动机动态规划CF3000

子串语法图

题目描述

CauchySheep 有一个字符串 ss。他把 ss 的所有不同非空子串都拿出来,每个不同子串看作有向图中的一个点。

对于两个子串 a,ba,b,若满足:

  • b+1=a|b|+1=|a|
  • bbaa 的一个子串;

则从点 aa 向点 bb 连一条有向边。

请你计算在这张有向图中,从点 ss 出发的简单路径数量,并输出它对 998244353998244353 取模后的结果。

简单路径指路径上不重复经过同一个点。长度为 00、只包含起点 ss 的路径也计入答案。

以字符串 abba 为例,图中点包括 abbaabbbbabbabbaba 等不同非空子串,并用有向边表示“删去一个字符长度后仍为子串”的关系。该图用于说明样例 1 的子串有向图结构。

输入格式

输入一行一个字符串 ss,由小写英文字母组成。

输出格式

输出一行一个整数,表示从 ss 出发的简单路径数量对 998244353998244353 取模后的结果。

数据范围

  • 1s3000001\le |s|\le 300000

样例 1

输入

abba

输出

13

样例 2

输入

benbeipo

输出

255

样例 3

输入

iqiiiiiiqq

输出

300

样例 4

输入

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

输出

35