PDF
DNA(Deoxyribonucleic Acid,脱氧核糖核酸)是包含遗传指令的分子,它由四种不同的核苷酸组成,即腺嘌呤、胸腺嘧啶、关氨酸和胞嘧啶。 它由四种不同的核苷酸组成,即腺嘌呤、胸腺嘧啶、鸟嘌呤和胞嘧啶,如图1所示。 如果我们用它的初始字符来表示一个核苷酸,那么一条DNA链就可以看作是由A、T、G、C这四个字符组成的长串(字符序列)。
"胸腺-腺嘌呤-腺嘌呤-胞嘧啶-腺嘌呤-胞嘧啶-腺嘌呤-胸腺"
那么我们就可以用字符串TAACTGCCGAT来表示上述DNA链。"
生物学家安教授发现,一种基因X普遍存在于五种不同动物的DNA链中,即狗、猫、马、牛和猴子。他还发现,每种动物的基因X的DNA序列都非常相似。见图2。
基因X的DNA序列
Cat:GCATATGGCTGTGCA
狗:GCAAATGGCTGTGCA
马:GCTAATGGGTGTCCA
牛:GCAAATGGCTGTGCA。
猴子:GCAAATCGGTGAGCA
图2.X基因在动物体内的DNA序列 基因X在动物体内的DNA序列。
安教授认为人类可能也有基因X,于是决定寻找人类DNA中X的DNA序列。但是,在寻找之前,他必须要找到一个有代表性的基因X的DNA序列,因为它在五种动物的DNA中的序列并不完全相同。他决定用汉明距离来定义代表序列。
汉明距离是指两个长度相等的字符串在每个位置上的不同字符数。例如,假设给我们两个字符串 "AGCAT "和 "GGAAT"。这两个字符串的汉明距离为2,因为这两个字符串的第1个和第3个字符是不同的.利用汉明距离,我们可以定义一组等长的多个字符串的代表字符串。给定一组长度为n的字符串S={s1,...,s_m},长度为n的字符串y与集合S之间的共识误差是y与S中每个si之间的汉明距离之和,如果y与S之间的共识误差是所有可能的长度为n的字符串y中的最小值,则称y为S的共识字符串。例如,给定三个字符串 "AGCAT""AGACT "和 "GGAAT",给定字符串的共识字符串是 "AGAT",因为 "AGAT "和三个字符串之间的汉明距离之和是3,是最小的。(在这种情况下,共识字符串是唯一的,但一般情况下,可以有多个共识字符串)。我们将共识串作为DNA序列的代表。对于上面图2的例子,基因X的共识串是 "GCAAATGGCTGTGCA",共识错误是7。
题目大意
输入个长度均为的序列,求一个序列,到所有序列的总距离尽量小。两个等长字符串的距离等于字符不同的位置个数,如和的距离为(左数第、个字符不同)。
输入整数和(,),以及个长度为的序列,(只包含字母、、、),输出到个序列的距离和最小的序列和对应的距离。如有多解,要求字典序最小的解。