A4500 「THUPC 2026 初赛」回响形态

暂无评定 传统题 THUPC 上传者
时间限制500ms
内存限制1024MiB
通过 / 提交0/0

A4500「THUPC 2026 初赛」回响形态

暂无评定 传统题 THUPC 上传者
时间限制500ms
内存限制1024MiB
通过 / 提交0/0

题目描述

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

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

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

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

输入格式

从标准输入读入数据。

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

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

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

输出格式

输出到标准输出。

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

9 6
bbabbbbaa
2
5
10
11
14
15

1
3
8
9
3
2

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

当 k=5k=5 时,以 k/2k / 2 为中心的子串有 s[2…3]=ba,s[1…4]=bbabs[2 \ldots 3]=ba, s[1 \ldots 4]=bbab,border 数分别为 1,21,2。

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

题目使用协议

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

以下『本仓库』皆指 THUPC2026 初赛 官方仓库(https://gitlink.org.cn/thusaa/thupc2026pre)

  1. 任何单位或个人都可以免费使用或转载本仓库的题目;
  2. 任何单位或个人在使用本仓库题目时,应做到无偿、公开,严禁使用这些题目盈利或给这些题目添加特殊权限;
  3. 如果条件允许,请在使用本仓库题目时同时提供数据、标程、题解等资源的获取方法;否则,请附上本仓库地址 或 算协公开仓库链接。