背景:每列找出最多重复次数即可。
#include<stdio.h>
#include<string.h>
int main(void){
int t;
scanf("%d",&t);
while(t--){
int n,m;
scanf("%d %d",&n,&m);
char DNA[n][m+1];
for(int i=0;i<n;i++) scanf("%s",DNA[i]);
int list[4];
int num=0,num1;
for(int i=0;i<m;i++){
memset(list,0,sizeof(list));
for(int j=0;j<n;j++){
if(DNA[j][i]=='A') list[0]++;
else if(DNA[j][i]=='C') list[1]++;
else if(DNA[j][i]=='G') list[2]++;
else list[3]++;
}
int temp=0,ans;
for(int k=0;k<4;k++){
if(list[k]>temp) {
ans=k;
temp=list[k];
num1=n-list[k];
}
}
if(ans==0) printf("A");
else if(ans==1) printf("C");
else if(ans==2) printf("G");
else printf("T");
num+=num1;
}
printf("\n%d\n",num);
}
return 0;
}