首页 > 代码库 > uva 1368 DNA Consensus String 字符串
uva 1368 DNA Consensus String 字符串
这学期离散数学的最后一章刚学了类似的东西
什么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 字符串
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。