#5107. 字符串

字符串

题目描述

你是算法工程师。

有一天,mentor交给你一个涉密的任务,需要处理一组数据,解析出其中蕴含的信息。数据的格式是这样的: NN 个长为 MM 的字符串,每个字符串仅由小写字母和 ? 组成, ? 是通配符,可以替换成任意字符,这可能是信息来源方故意做的手脚。

mentor告诉你,如果替换之后的字符串可以相等,那么就说这两个字符串相似。而且mentor接到的需求是求相似字符串的对数,这对涉密任务的完成至关重要,担子就落在你身上了。

输入格式

第一行输入两个正整数 N,MN,M,表示串的数量和长度。

接下来 NN 行每行一个长度为 MM 的字符串,满足题目描述所给的性质。

输出格式

一行输出一个整数,表示总共的对数。

3 3
??b
c??
c?c
2
4 6
ab??c?
??kll?
a?k??c
?bcd??
3
5 2
??
b?
c?
?g
cg
8

数据范围与提示

  • 对于 30%30 \% 的数据, 满足 M2M \le 2
  • 另有 30%30\% 的数据, 满足 M4M \le 4
  • 对于 100%100 \% 的数据, 满足 N5×104,M6N \le 5 \times 10^4 , M \le 6