#P14830. [THUPC 2026 初赛] 回响形态

[THUPC 2026 初赛] 回响形态

题目背景

来自 2026 清华大学学生程序设计竞赛暨高校邀请赛(THUPC2026)初赛。

题解等资源可在 https://gitlink.org.cn/thusaa/thupc2026pre 查看。

题目描述

请注意本题特殊的时间限制。

给定一个长为 nn 的串 ss。称子串 s[ij]s[i \dots j] 的中心是 i+j2\frac{i + j}{2}

现在你要回答 qq 次询问,每次询问给出一个 kk,问所有中心为 k2\frac{k}{2} 的子串的 border 个数之和。

border 的定义如下:一个非空字符串 tt 是另一个字符串 ss 的 border,当且仅当 tt 既是 ss 的前缀,也是 ss 的后缀。例如,对任一个非空串 ssss 本身就是一个 ss 的 border。

输入格式

从标准输入读入数据。

第一行包含两个正整数 n(1n106),q(1q20)n (1 \leq n \leq 10^6), q (1 \leq q \leq 20),表示输入字符串 ss 的长度及询问次数。

第二行包含一个长度为 nn 的字符串 ss,由英文小写字母组成。

接下来 qq 行,每行一个整数 k(2k2n)k (2 \leq k \leq 2n),表示一组询问。

输出格式

输出到标准输出。

输出 qq 行,第 ii 行表示第 ii 个询问的答案。

9 6
bbabbbbaa
2
5
10
11
14
15
1
3
8
9
3
2

提示

【样例 1 解释】

k=2k = 2 时,以 k/2k/2 为中心的子串只有 s[11]=bs[1 \dots 1] = \tt b,border 数为 11

k=5k = 5 时,以 k/2k/2 为中心的子串有 s[23]=ba,s[14]=bbabs[2 \dots 3] = \tt {ba}, s[1 \dots 4] = \tt{bbab},border 数分别为 1,21,2

k=10k = 10 时,以 k/2k/2 为中心的子串有 $s[5 \dots 5] = \tt{b}, s[4 \dots 6] = \tt{bbb}, s[3 \dots 7] = \tt{abbbb}, s[2 \dots 8] = \tt{babbbba}, s[1 \dots 9] = \tt{bbabbbbaa}$,border 数分别为 1,3,1,2,11,3,1,2,1