UVa1368——DNA Consensus String

来源:互联网 发布:剑网三妖成男捏脸数据 编辑:程序博客网 时间:2024/05/22 04:48

题目的意思是:给你m个等长的DNA序列,求解的Consensus String 的第 i 个是每 i 列出现最多的字符,有相同大小的,按字典序排。

而consensus error是每一列不同的字符数之和。


下面的是AC的代码:

#include <iostream>#include <cstring>using namespace std;char str[50][1005];int ans[4];int main(){//freopen("1368.txt", "r", stdin);int t, m, n, i, j, k;char res[1005];cin >> t;while(t--){cin >> m >> n;for(i = 0; i < m; i++)cin >> str[i];int a, t, c, g;k = 0;for(i = 0; i < n; i++){a = t = c = g = 0;for(j = 0; j < m; j++){if(str[j][i] == 'A')a++;else if(str[j][i] == 'T')t++;else if(str[j][i] == 'C')c++;elseg++;}if(a >= t && a >= c && a >= g){res[i] = 'A';k += m - a;}else if(c >= a && c >= t && c >= g){res[i] = 'C';k += m - c;}else if(g >= a && g >= c && g >= t){res[i] = 'G';k += m - g;}else if(t >= a && t >= c && t >= g){res[i] = 'T';k += m - t;}}res[n] = '\0';cout << res << endl;cout << k << endl;}return 0;}


0 0
原创粉丝点击