题目背景
AFO的cat是一个很菜很菜的OI选手。所以这题跟AFO的cat没有任何关系。
题目描述
我们的主人公队爷gzy沉迷于看机器人石头剪刀布比赛无法自拔。这一次,一共有$n$个机器人报名了比赛,经过审核,最终会有一些机器人参加比赛。
机器人玩石头剪刀布是有规律的,具体地,我们会给定一个参数$k$,第$i$个机器人会有一个长度为$k$的字符串$s_i$(下标从0开始)和一个变量$current_i$。$s_i$中的每个字符是R,P或S中的一种,R代表石头,P代表布,S代表剪刀。当第$i$个机器人进行一轮游戏时,它会进行以下操作:
- 选择$s_{i,current_i \mod\ k}$作为它这一轮的决策。
- 令$current_i$加一。
在比赛中,每两个机器人之间都要进行$k$轮游戏,定义它们的比赛结果为二元组$(x,y)$,其中$x$表示第一个机器人赢的次数,$y$表示第二个机器人赢的次数。
现在gzy知道了每个机器人的$s$,但不知道每个机器人的$current$。gzy发现,在所有可能的选出至少一个机器人参赛的情况中,存在一些情况,使得无论这些机器人的$current$如何,每两个机器人之间的比赛结果都是固定的。也就是说,对于任意两个参赛的机器人$i,j$,都存在一个二元组$(x,y)$,使得无论$current_i,current_j$等于多少,它们的比赛结果都是$(x,y)$。
gzy想知道有多少种参赛情况满足以上条件,你能帮帮他吗?
输入格式
输入数据的第一行包含一个正整数$n$。
接下来$n$行,每行一个长度为$k$的字符串,第$i$个字符串表示$s_i$。$k$可以由任意一个$s_i$得到。
输出格式
输出包含一行一个整数,表示不同的参赛情况数量对$10^9+7$取模后的结果。
样例1输入
3
RPS
PSR
SRP
样例1输出
3
子任务
对于$100\%$的测试数据,满足$n \le 10^5,k \le 18$。
Subtask分值 | n≤n≤ |
---|---|
30 | 2020 |
70 | 100000100000 |
温馨提示
题目并不难。自古以来OI比赛T1最水,你一定能切掉此题!
时间限制:$1\text{s}$
空间限制:$512\text{MB}$