#P16845. [GKS 2021 #C] Smaller Strings

[GKS 2021 #C] Smaller Strings

题目描述

给定一个整数 KK 和一个长度为 NN 的字符串 SSSS 由英文字母表前 KK 个小写字母组成。求有多少个长度为 NN 的回文串,其字典序小于 SS,并且仅由英文字母表前 KK 个小写字母组成。

由有序字母 a1,a2,,ana_1, a_2, \dots, a_n 组成的字符串在字典序上小于另一个等长的字符串 b1,b2,,bnb_1, b_2, \dots, b_n,如果存在第一个位置 ii 使得 ai<bia_i < b_i。例如,以下字符串按字典序递增排列:aaaaababacab

回文串是指正着读和反着读都相同的字符串。例如,annaracecaraaax 都是回文串,而 abfrogyoyo 不是。

由于这样的字符串数量可能非常大,请输出答案对 109+710^9 + 7 取模的结果。

输入格式

输入的第一行给出测试用例的数量 TT。接下来有 TT 个测试用例。

每个测试用例由两行组成。第一行包含两个整数 NNKK。第二行包含一个长度为 NN 的字符串 SS,由小写字母组成。

输出格式

对于每个测试用例,输出一行,格式为 Case #x: y,其中 xx 是测试用例编号(从 11 开始),yy 是字典序更小的回文串的数量对 109+710^9 + 7 取模的结果。

3
2 3
bc
5 5
abcdd
1 5
d
Case #1: 2
Case #2: 8
Case #3: 3

提示

在样例 #1 中,回文串有 ["aa", "bb"]

在样例 #2 中,回文串有 ["aaaaa", "aabaa", "aacaa", "aadaa", "aaeaa", "ababa", "abbba", "abcba"]

在样例 #3 中,回文串有 ["a", "b", "c"]

限制条件

1T1001 \le T \le 100

字符串 SS 由英文字母表前 KK 个小写字母组成。

测试集 1

1N81 \le N \le 8

1K51 \le K \le 5

测试集 2

1N1051 \le N \le 10^5

1K261 \le K \le 26

翻译由 DeepSeek V4 Pro 完成