UVa1368-DNA Consensus String-DNA序列

题目链接https://vjudge.net/problem/UVA-1368


输入m个长度均为n的DNA序列,求一个DNA序列,到所有序列的总Hamming距离尽量小。两个等长字符串的Hamming距离等于字符不同的位置个数,例如,ACGT和GCGA的Hamming距离为2(左数第1, 4个字符不同)。
输入整数m和n(4≤m≤50, 4≤n≤1000),以及m个长度为n的DNA序列(只包含字母A,C,G,T),输出到m个序列的Hamming距离和最小的DNA序列和对应的距离。如有多解,要求为字典序最小的解。例如,对于下面5个DNA序列,最优解为TAAGATAC。

TATGATAC
TAAGCTAC
AAAGATCC
TGAGATAC
TAAGATGT

每组测试用例输出第二行为consensus error。


#include
int maxnum;
char find_max(int a,int b,int c,int d){
    maxnum=a;
    if(b>maxnum) maxnum=b;
    if(c>maxnum) maxnum=c;
    if(d>maxnum) maxnum=d;
    if(maxnum==a) return 'A';
    if(maxnum==b) return 'C';
    if(maxnum==c) return 'G';
    if(maxnum==d) return 'T';
}
int main(){
    int T;
    scanf("%d",&T);
    while(T--){
        int m,n,error=0;
        scanf("%d%d",&m,&n);
        char maps[50][1000];
        for(int i=0;i




你可能感兴趣的:(UVa)