33OJ
登录 注册

#ABC483E. 拼写错误对

拼写错误对

拼写错误对

题目描述

有 NN 个长度为 MM 的、由小写英文字母组成的字符串。第 ii 个字符串(1≤i≤N1 \le i \le N)为 SiS_i。

请求出满足以下条件的整数对 (i,j)(i,j)(1≤i<j≤N1 \le i < j \le N)的数量:

  • SiS_i 与 SjS_j 的汉明距离不超过 22。

什么是汉明距离?

两个长度均为 kk 的字符串 AA 与 BB 的汉明距离,是满足 AA 的第 ii 个字符与 BB 的第 ii 个字符不同的下标 ii(1≤i≤k1 \le i \le k)的数量。例如,abc 与 bac 的汉明距离为 22,atcoder 与 contest 的汉明距离为 77。

输入格式

输入第一行为两个整数 N,MN,M。

接下来 NN 行,第 ii 行为字符串 SiS_i。

输出格式

输出一行一个整数,表示满足条件的整数对数量。

3 3
abc
abd
bac
2

样例 1 解释

  • S1=S_1=abc 与 S2=S_2=abd 的汉明距离为 11;
  • S1=S_1=abc 与 S3=S_3=bac 的汉明距离为 22;
  • S2=S_2=abd 与 S3=S_3=bac 的汉明距离为 33。

因此满足条件的是 (1,2)(1,2) 与 (1,3)(1,3) 两对,输出 22。

9 5
aaaaa
aaaaa
aaaab
aaaba
aaabb
aabaa
aabab
aabba
aabbb
31

样例 2 解释

同一个字符串可以出现多次。

数据范围

对于所有测试数据,保证:

  • 2≤N≤2×1052 \le N \le 2 \times 10^5;
  • 2≤M≤62 \le M \le 6;
  • N,MN,M 是整数;
  • SiS_i 是长度为 MM 的、由小写英文字母组成的字符串。

子任务

本题共 20 个测试点,按测试点计分:

测试点 分值 每个测试点 特殊性质
1∼61 \sim 6 3030 55 N≤2000N \le 2000
7∼127 \sim 12 N≤5×104N \le 5 \times 10^4
13∼2013 \sim 20 4040 无特殊限制

每个测试点单独评分,全部测试点的得分之和即为本题得分。