标签:
这学期离散数学的最后一章刚学了类似的东西
什么decoding function和humming distance手算起来才有点难 编程的话就很水了
#include <cstdio> #include <cstring> #include <cstdlib> #include <iostream> #include <algorithm> #include <cmath> #include <set> #include <queue> #include <stack> #include <map> #include <vector> using namespace std; typedef long long ll; typedef unsigned long long ull; typedef pair<int, int> P; const int maxn = 20; char a[55][1010]; char b[1010]; const char ch[] = {‘A‘, ‘C‘, ‘G‘, ‘T‘}; int main() { //freopen("in.txt", "r", stdin); //freopen("out.txt", "w", stdout); int T; scanf("%d", &T); while(T--) { int ans = 0; int m, n; scanf("%d%d", &m, &n); for(int i = 0; i < m; i++) scanf("%s", a[i]); int cnt[4]; for(int i = 0; i < n; i++) { memset(cnt, 0, sizeof(cnt)); for(int j = 0; j < m; j++) { int k = 0; while(ch[k] != a[j][i]) k++; cnt[k]++; } int maxnum = 0; for(int j = 0; j < 4; j++) if(cnt[j] > maxnum) maxnum = cnt[j]; for(int j = 0; j < 4; j++) { if(cnt[j] == maxnum) { b[i] = ch[j]; ans += m - maxnum; break; } } } b[n] = ‘\0‘; printf("%s\n", b); printf("%d\n", ans); } return 0; }
uva 1368 DNA Consensus String 字符串
标签:
原文地址:http://www.cnblogs.com/dishu/p/4263889.html