编程题
### 问题描述 小然找到了一份神秘的密码文本,这份文本是一个长度为 $N$ 的字符串 $S$。他知道这个文本使用了一种名为元音矩阵的加密方案。 元音矩阵是一种独特的密码方案,它将字符串切割成多个片段,每个片段中恰好包含 $K$ 个元音。 你的任务是找出有多少种切割方法可以将字符串 $S$ 切割成满足元音矩阵方案的片段。由于答案可能非常大,所以请你将答案对 $10^9 + 7$ 取模后输出。 注意: - 在小写英文字母中,字符 a,e,i,o 和 u 被认为是元音。 - 保证字符串 $S$ 中至少包含一个元音,且 $S$ 中的元音数量是 $K$ 的倍数。 ### 输入格式 第一行输入一个整数 $T$,表示测试用例的数量。 每个测试用例包含两行: - 第一行输入两个整数 $N$ 和 $K$,表示字符串的长度和每个片段中所需的元音数量。 - 第二行输入一个长度为 $N$ 的字符串 $S$,表示密码文本。 ### 输出格式 对于每个测试用例,输出一行,表示切割字符串 $S$ 的方法数量对 $10^9 + 7$ 取模后的结果。 ### 样例输入 ```text 2 3 1 neo 10 2 babylonian ``` ### 样例输出 ```text 1 2 ``` ### 说明 - 样例中的第一个测试用例:只有一种切割方法可以将字符串切割成每个片段中都有 $1$ 个元音的片段,即 "ne" 和 "o"。 - 样例中的第二个测试用例:有两种切割方法可以将字符串切割成每个片段中都有 $2$ 个元音的片段,分别是 "babylo" 和 "nian",以及 "babylon" 和 "ian"。 ### 评测数据范围 $1 \leq T \leq 10^5$。 $1 \leq N \leq 10^5$。 $1 \leq K \leq N$。 对于所有的测试用例,保证 $S$ 中的元音数量是 $K$ 的倍数。 所有测试用例中 $N$ 的和不超过 $10^5$。
查看答案
赣ICP备20007335号-2