题目链接如下:Online Judge
我的代码如下:
#include <cstdio>
#include <string.h>
const int maxM = 50;
const int maxN = 1001;
int T, m, n, len, tot;
char str[maxM][maxN];
const char dna[] = "ACGT";
int cal(int k){
int a[] = {0, 0, 0, 0};
for(int i = 0; i < m; ++i){
if(str[i][k] == 'A'){
a[0]++;
} else if(str[i][k] == 'C'){
a[1]++;
} else if(str[i][k] == 'G'){
a[2]++;
} else{
a[3]++;
}
}
int maxx = a[0];
int pivot = 0;
for(int i = 1; i < 4; ++i){
if(a[i] > maxx){
maxx = a[i];
pivot = i;
}
}
printf("%c", dna[pivot]);
return m - maxx;
}
int main(){
scanf("%d", &T);
for(int i = 0; i < T; ++i){
scanf("%d %d", &m, &n);
for(int j = 0; j < m; ++j){
scanf("%s", str[j]);
}
len = strlen(str[0]);
tot = 0;
for(int j = 0; j < len; ++j){
tot += cal(j);
}
printf("\n%d\n", tot);
}
return 0;
}