UVA 1368-DNA Consensus String
2016-07-18 14:25
267 查看
UVA 1368-DNA Consensus String
题目大意: 给几个字符串,写出一个与这几个字符串差别最小的字符串解题思路: dna每一位都取本组出现次数最多的碱基
#include <stdio.h> #include <string.h> #include <iostream> using namespace std; int main() { int x, m, n, i, j, k, l, p, a[4], b, sum; char c[55][1100], s[1100]; cin >> x; for(i = 0; i < x; i++) { sum=0; scanf("%d%d", &m, &n); memset(s, 0, sizeof(s)); for(j = 0; j < m; j++) { scanf("%s", c[j]); } for(k = 0; k < n; k++) { a[0] = 0; a[1] = 0; a[2] = 0; a[3] = 0; b = 0; for(j = 0; j < m; j++) { if(c[j][k] == 'A') a[0]++; else if(c[j][k] == 'C') a[1]++; else if(c[j][k] == 'G') a[2]++; else if(c[j][k] == 'T') a[3]++; } for(p = 1; p < 4; p++) { if(a[b]<a[p]) b=p; } sum=sum+m-a[b]; if(b == 0) s[k] = 'A'; else if(b == 1) s[k] = 'C'; else if(b == 2) s[k] = 'G'; else if(b == 3) s[k] = 'T'; } for(k = 0; k < n; k++) printf("%c",s[k]); printf("\n%d\n", sum); } return 0; }
相关文章推荐
- 如何组织构建多文件 C 语言程序(二)
- 如何写好 C main 函数
- Lua和C语言的交互详解
- 关于C语言中参数的传值问题
- 简要对比C语言中三个用于退出进程的函数
- 深入C++中API的问题详解
- 基于C语言string函数的详解
- C语言中fchdir()函数和rewinddir()函数的使用详解
- C语言内存对齐实例详解
- C语言编程中统计输入的行数以及单词个数的方法
- C 语言简单加减乘除运算
- C语言自动生成enum值和名字映射代码
- C语言练习题:自由落体的小球简单实例
- 使用C语言判断英文字符大小写的方法
- c语言实现的带通配符匹配算法
- C语言实现顺序表基本操作汇总
- C语言中进制知识汇总
- C语言判断一个数是否是2的幂次方或4的幂次方
- C语言二进制思想以及数据的存储
- C语言中计算正弦的相关函数总结