AT_oupc2023_day1_e.Han Burger 2

通过率:0%

AC君温馨提醒

该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

将 NN 个字符或字符串 X1,X2,…,XNX_1, X_2, \dots, X_N 按照顺序连接得到的字符串记作 X1+X2+⋯+XNX_1 + X_2 + \cdots + X_N。
此外,字符串 XX 的第 ii 个字符到第 jj 个字符组成的连续子串记作 X[i,j]X[i, j]。
对于字符串,定义“バーガー(Burger)”、“全バーガー(Full Burger)”和“半バーガー(Half Burger)”如下。该定义与 D 问一样。

  • “バーガー(Burger)” 指的是“全バーガー(Full Burger)”和“半バーガー(Half Burger)”的字符串。
  • “全バーガー(Full Burger)” 指存在某个“バーガー(Burger)” AA 和某个字符 cc,使得字符串可表示为 c+A+cc+A+c,或是空字符串。
  • “半バーガー(Half Burger)” 指的是可以表示为非空“バーガー(Burger)” AA 和 BB 拼接而成 A+BA+B 的字符串,且不是“全バーガー(Full Burger)”的字符串。

例如,abba 和 abbcca 是“全バーガー(Full Burger)”,aabb 和 abbacc 是“半バーガー(Half Burger)”,而 abbcbbc 和 ababa 不属于“バーガー(Burger)”。

给定一个由小写英文字母组成的字符串 SS 和正整数 KK,请对于 k=0,1,2,…,Kk = 0, 1, 2, \dots, K,回答下述问题:

  • 求 S[i,j]+TS[i, j] + T 变成“全バーガー(Full Burger)”所需补充的 TT(为任意小写英文字母字符串)最短长度为 kk 的 (i,j)(i, j)(1≤i≤j≤∣S∣1 \leq i \leq j \leq |S|)的组数,并对 998244353998244353 取模。

输入格式

输入以如下格式从标准输入读入:

SS KK

输出格式

请输出 K+1K+1 行。
第 ii 行输出 k=i−1k = i-1 时的答案。

输入输出样例

  • 输入#1

    abcc
    3

    输出#1

    1
    5
    3
    1
  • 输入#2

    fortississimo
    7

    输出#2

    4
    19
    20
    21
    15
    8
    3
    1

说明/提示

小题目

  1. (11 分) K≤300K \leq 300
  2. (9999 分) 没有其他限制

样例解释 1

对于 S[i,j]+TS[i, j] + T 变为“全バーガー(Full Burger)”的 TT 中,TT 的最小长度为 kk (0≤k≤30 \leq k \leq 3)的 (i,j)(i, j) 的组合分别如下:

  • k=0k = 0 时,(3,4)(3, 4)
  • k=1k = 1 时,(1,1),(2,2),(3,3),(4,4),(2,4)(1, 1), (2, 2), (3, 3), (4, 4), (2, 4)
  • k=2k = 2 时,(1,2),(2,3),(1,4)(1, 2), (2, 3), (1, 4)
  • k=3k = 3 时,(1,3)(1, 3)

例如,S[1,4]=abccS[1,4]=abcc,设 T=baT=ba 可变为“全バーガー(Full Burger)”。TT 长度不超过 11 时无法成为“全バーガー(Full Burger)”。

该样例满足小题目 1 的限制。

样例解释 2

该样例满足小题目 1 的限制。

数据范围

  • 1≤∣S∣≤200,0001 \leq |S| \leq 200{,}000
  • 1≤K≤200,0001 \leq K \leq 200{,}000
  • SS 由小写英文字母组成
  • KK 为整数

由 ChatGPT 5 翻译

输入解题思路,AI测评打分。不知道怎么写?

首页