题目大意
题目描述
给定一个长度为 、仅由小写字母组成的字符串 以及一个非负整数 。
需要计算 的本质不同的非空 -松散子序列的数量,并将结果对 取模。
相关定义
-
-松散子序列:如果子序列 在原字符串 中对应的下标序列为 ,且满足对于所有的 ,都有 ,那么 就是一个 -松散子序列。即子序列中原串相邻提取字符的原始位置距离必须严格大于 。
-
本质不同:两个子序列被认为是不同的,当且仅当它们的长度不同,或者它们在某个对应位置上的字符不相同(即只对比提取出的字符构成的字符串本身是否一致)。
输入格式
第一行包含一个整数 (),表示测试用例数。
对于每组测试用例:
第一行包含两个整数 ()。
第二行包含一个长度为 的字符串 ,保证仅包含小写字母。
保证所有测试用例的 。
输出格式
对于每组测试用例,输出一行一个整数,表示本质不同的非空 -松散子序列的数量对 取模的结果。
样例
1 | 输入: |
样例解释
-
对于第一个测试用例(,),下标位置差必须严格大于 。满足条件的本质不同的子序列有
a、b、ab。 -
对于第二个测试用例(,),下标位置差必须严格大于 。满足条件的本质不同的子序列有
a、b、c、aa、ab、bb。
思路讲解
AC代码
源代码
1 |