题单练习 挑战赛 普及+/提高 题
← 上一题 下一题 →

A5265 | 午枫的创造

时间限制1s
内存限制128MB
通过 / 提交0/0

题目描述

小枫现在有一个包含 $n$ 个元素的字符串序列 $a$ ,且序列 $a$ 中的每个字符串中都只包含不重复的前 $m$ 个小写字母,且不为空,小午想要创造满足如下条件的字符串序列 $b$:

+ 序列 $b$ 包含的字符串个数为 $n$ ,且序列 $b$ 中的每个字符串中都只包含不重复的前 $m$ 个小写字母(可以为空串);
+ 恰好存在一个 $i$,使得 $1 \le i \le n$ 且 $a_i \neq b_i$。这里 $a_i\neq b_i$ 指的是一个字符串中的某一种字符在另一个字符串中未出现。
+ 定义 $C_{s}$ 为字符串 $s$ 中所有字符组成的集合,例如 $C_{"bdccab"}=\{a,b,c,d\}$。对于所有 $1\leq lr\leq n$ ,均有 $C_{a_l+a_{l+1}+...+a_r}=C_{b_l+b_{l+1},...+b_r}$ 。这里 $a+b$ 指的是将字符串 $b$ 拼接到字符串 $a$ 后。

小午想知道他能够创造出多少个合法的字符串序列 $b$ 。

两个字符串序列 $A$ 和 $B$ 不同,当且仅当存在一个位置 $i$,$C_{A_i}\neq C_{B_i}$

输入格式

本题包含多组输入,第一行输入一个正整数 $T(1\leq T\leq 10^4)$ ,表示测试用例的数量。

对于每个测试用例,第一行输入两个正整数 $n,m(2\leq n\leq 2\times10^5, 1\leq m\leq26)$ ,含义如上文所示。

接下来一行,输入 $n$ 个只包含前 $m$ 个小写字母的字符串 $a_1,\dots,a_n$,含义如上文所示。

保证所有测试用例的 $n$ 之和不超过 $2\times10^5$ 。

输出格式

对于每一个测试用例,输出一个整数,表示合法的字符串序列 $b$ 的数量。

输入输出样例

输入 #1
1
3 2
a b ab
输出 #1
3
C++ 编辑器
输入
输出