AT_oupc2023_day1_e Han Burger 2
题目描述
将 $N$ 个字符或字符串 $X_1, X_2, \dots, X_N$ 按照顺序连接得到的字符串记作 $X_1 + X_2 + \cdots + X_N$。
此外,字符串 $X$ 的第 $i$ 个字符到第 $j$ 个字符组成的连续子串记作 $X[i, j]$。
对于字符串,定义“バーガー(Burger)”、“全バーガー(Full Burger)”和“半バーガー(Half Burger)”如下。**该定义与 D 问一样。**
- “バーガー(Burger)” 指的是“全バーガー(Full Burger)”和“半バーガー(Half Burger)”的字符串。
- “全バーガー(Full Burger)” 指存在某个“バーガー(Burger)” $A$ 和某个字符 $c$,使得字符串可表示为 $c+A+c$,或是空字符串。
- “半バーガー(Half Burger)” 指的是可以表示为非空“バーガー(Burger)” $A$ 和 $B$ 拼接而成 $A+B$ 的字符串,且不是“全バーガー(Full Burger)”的字符串。
例如,`abba` 和 `abbcca` 是“全バーガー(Full Burger)”,`aabb` 和 `abbacc` 是“半バーガー(Half Burger)”,而 `abbcbbc` 和 `ababa` 不属于“バーガー(Burger)”。
给定一个由小写英文字母组成的字符串 $S$ 和正整数 $K$,请对于 $k = 0, 1, 2, \dots, K$,回答下述问题:
- 求 $S[i, j] + T$ 变成“全バーガー(Full Burger)”所需补充的 $T$(为任意小写英文字母字符串)最短长度为 $k$ 的 $(i, j)$($1 \leq i \leq j \leq |S|$)的组数,并对 $998244353$ 取模。
输入格式
输入以如下格式从标准输入读入:
> $S$ $K$
输出格式
请输出 $K+1$ 行。
第 $i$ 行输出 $k = i-1$ 时的答案。
说明/提示
## 小题目
1. ($1$ 分) $K \leq 300$
2. ($99$ 分) 没有其他限制
## 样例解释 1
对于 $S[i, j] + T$ 变为“全バーガー(Full Burger)”的 $T$ 中,$T$ 的最小长度为 $k$ ($0 \leq k \leq 3$)的 $(i, j)$ 的组合分别如下:
- $k = 0$ 时,$(3, 4)$
- $k = 1$ 时,$(1, 1), (2, 2), (3, 3), (4, 4), (2, 4)$
- $k = 2$ 时,$(1, 2), (2, 3), (1, 4)$
- $k = 3$ 时,$(1, 3)$
例如,$S[1,4]=abcc$,设 $T=ba$ 可变为“全バーガー(Full Burger)”。$T$ 长度不超过 $1$ 时无法成为“全バーガー(Full Burger)”。
该样例满足小题目 1 的限制。
## 样例解释 2
该样例满足小题目 1 的限制。
## 数据范围
- $1 \leq |S| \leq 200{,}000$
- $1 \leq K \leq 200{,}000$
- $S$ 由小写英文字母组成
- $K$ 为整数
由 ChatGPT 5 翻译