#P16845. [GKS 2021 #C] Smaller Strings

    ID: 19172 远端评测题 2000ms 1024MiB 尝试: 0 已通过: 0 显示难度普及 上传者: 标签>字符串数学2021Google Kick Start

[GKS 2021 #C] Smaller Strings

题目描述

给定一个整数 KK 和一个长度为 NN 的字符串 SS,SS 由英文字母表前 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。例如,以下字符串按字典序递增排列:aaa、aab、aba、cab。

回文串是指正着读和反着读都相同的字符串。例如,anna、racecar、aaa 和 x 都是回文串,而 ab、frog 和 yoyo 不是。

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

输入格式

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

每个测试用例由两行组成。第一行包含两个整数 NN 和 KK。第二行包含一个长度为 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"]。

限制条件

1≤T≤1001 \le T \le 100。

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

测试集 1

1≤N≤81 \le N \le 8。

1≤K≤51 \le K \le 5。

测试集 2

1≤N≤1051 \le N \le 10^5。

1≤K≤261 \le K \le 26。

翻译由 DeepSeek V4 Pro 完成