Uva1368 字符串
每个位置都取重复次数最多的字符,即为到m个序列最小的hamming距离。
#define _CRT_SECURE_NO_DEPRECATE #include<iostream> #include<string.h> #include<stdio.h> #include<algorithm> #include<memory> #include<stdlib.h> using namespace std; char a[] = { 'A', 'C', 'G', 'T' }; char b[1010][1010]; int main() { int t; int n, m; scanf("%d", &t); while (t--) { scanf("%d%d", &n, &m); getchar(); for (int i = 0; i < n; i++) { scanf("%s", b[i]); } int q = 0; int sum=0; int max=0,num=0; for (int i = 0; i < m; i++) { max = 0; for (int k = 0; k < 4; k++) { sum = 0; for (int j = 0; j < n; j++) { if (a[k] == b[j][i]) { sum++; } } if (sum>max) { max = sum; q = k; } } num += (n-max); printf("%c", a[q]); } printf("\n%d\n", num); } return 0; }

浙公网安备 33010602011771号