P7377 [COCI 2018/2019 #5] Parametriziran

题目描述

我们规定一个包含小写字母和问号的字符串为一个**参数化单词**。例如,`a??cd`,`bcd`,`??` 都属于参数化单词。 如果两个参数化单词中,可以用特定的小写字母将其中的问号进行替换,并最终使得两个单词完全相同,那么原来的两个参数化单词就被称为是相似的。例如,`a???` 和 `?b?a` 都可以替换为 `abba`,因此 `a???` 和 `?b?a` 是相似的。 给定 $N$ 个长度为 $M$ 的参数化单词,求有多少对相似的参数化单词。

输入格式

第一行输入整数 $N,M$。 接下来的 $N$ 行,每行输入一个长度为 $M$ 的参数化单词。

输出格式

输出相似的参数化单词的对数。

说明/提示

#### 样例 1 解释 `??b` 和 `c??` 是相似的,而 `c??` 和 `c?c` 也是相似的。因此共有 $2$ 对相似的参数化单词。 #### 数据规模与约定 对于 $30\%$ 的数据,$M \le 2$。 对于另外 $30\%$ 的数据,$M \le 4$。 对于 $100\%$ 的数据,$1 \le N \le 5 \times 10^4$,$1 \le M \le 6$。 #### 说明 **本题分值按 COCI 原题设置,满分 $110$。** **题目译自 [COCI2018-2019](https://hsin.hr/coci/archive/2018_2019/) [CONTEST #5](https://hsin.hr/coci/archive/2018_2019/contest5_tasks.pdf) _T4 Parametriziran_。**