#2380. Bovine Genomics

    ID: 2380 传统题 1000ms 256MiB 尝试: 0 已通过: 0 难度: (无) 上传者: 标签>年份2017竞赛USACO搜索枚举其他离散化语言基础递归

Bovine Genomics

题目描述

FJ\red{FJ}n\red{n}头有斑点的牛和n\red{n}头没有斑点的牛。由于他刚刚学完牛的基因学的课程,他想知道牛有没有斑点是否 与牛的基因有关。

FJ\red{FJ}花了巨大的代价测出了每个牛的基因,每头牛的基因用一个长度为M\red{M}的由"A,C,G,T\red{A,C,G,T}"的串构成。FJ\red{FJ}将这 些串写成一个表/\red{/}矩阵,就像图中这样

N=3\red{N=3}的例子)

Positions: 1 2 3 4 5 6 7 ... M

Spotty Cow 1: A A T C C C A ... T
Spotty Cow 2: G A T T G C A ... A
Spotty Cow 3: G G T C G C A ... A

Plain Cow 1: A C T C C C A ... G
Plain Cow 2: A G T T G C A ... T
Plain Cow 3: A G T T C C A ... T

FJ\red{FJ}仔细的观察这个表,他发现通过观测2,4\red{2,4}位置的字符串可以预测牛是否有斑点。

(在这个例子中,假如他看到24\red{24}位置是GC\red{GC}AT\red{AT}或者AC\red{AC}就可以断定其有斑点,因为1\red{1}号有斑点的牛24\red{24}位置基因为AC\red{AC,}2\red{2}号为AT\red{AT,}3\red{3}号为GC\red{GC,}而且没有任何一头无斑点的牛的24\red{24}位置出现过这三个串)

FJ\red{FJ}认为,1\red{1}个或者两个位点是不能够区分品种的,必须是刚好3\red{3}个位点。他想知道能用多少组三个本质不同的位置判断牛的斑点,{1,2,3}\red{\{1,2,3\}}{1,3,2}\red{\{1,3,2\}}是本质相同的

输入格式

输入的第一行包含N(1N500\red{N (1 \leq N \leq 500)}(3\red{(3≤}M\red{M≤}50\red{50)}。下一个N\red{N}每行包含一串M\red{M}人物; 这些描述了斑点奶牛的基因组。决赛N\red{N}线条描述了普通奶牛的基因组。

输出格式

请计算可以解释斑点的三个不同位置的组数。如果仅通过查看基因组中的这三个位置就可以在 FarmerJohn\red{Farmer John }的奶牛群中完全准确地预测斑点性状,则一组三个位置可以解释斑点性。

样例

输入样例

3 8
AATCCCAT
GATTGCAA
GGTCGCAA
ACTCCCAG
ACTCGCAT
ACTTCCAT

输出样例

22