UVa 1368 - DNA Consensus String
2017-02-21 11:34
531 查看
題目:有m個長度為n的DNA序列,求一個DNA序列,是的它到所有其他序列的海明距離總和最小。
(兩個串海明距離為,元素不同的位數)
分析:字符串。直接統計每位四個字母出現的次數,找到出現最多的就是解。
說明:如果個數相同取字典序小的。
#include <stdio.h>
#include <stdlib.h>
char DNA[50][1001];
int bit[128];
int get_bit(char c)
{
return bit[c] >= bit['A'] && bit[c] >= bit['G']
&& bit[c] >= bit['T'] && bit[c] >= bit['C'];
}
int main()
{
int T, m, n;
while (~scanf("%d",&T))
while (T --) {
scanf("%d%d",&m,&n);
for (int i = 0; i < m; ++ i) {
scanf("%s",DNA[i]);
}
int ans = 0;
for (int i = 0; i < n; ++ i) {
bit['A'] = bit['G'] = bit['T'] = bit['C'] = 0;
for (int j = 0; j < m; ++ j) {
bit[DNA[j][i]] ++;
}
if (get_bit('A')) {
ans += m-bit['A'];
printf("%c",'A');
}else if (get_bit('C')) {
ans += m-bit['C'];
printf("%c",'C');
}else if (get_bit('G')) {
ans += m-bit['G'];
printf("%c",'G');
}else if (get_bit('T')) {
ans += m-bit['T'];
printf("%c",'T');
}
}
printf("\n%d\n",ans);
}
return 0;
}
(兩個串海明距離為,元素不同的位數)
分析:字符串。直接統計每位四個字母出現的次數,找到出現最多的就是解。
說明:如果個數相同取字典序小的。
#include <stdio.h>
#include <stdlib.h>
char DNA[50][1001];
int bit[128];
int get_bit(char c)
{
return bit[c] >= bit['A'] && bit[c] >= bit['G']
&& bit[c] >= bit['T'] && bit[c] >= bit['C'];
}
int main()
{
int T, m, n;
while (~scanf("%d",&T))
while (T --) {
scanf("%d%d",&m,&n);
for (int i = 0; i < m; ++ i) {
scanf("%s",DNA[i]);
}
int ans = 0;
for (int i = 0; i < n; ++ i) {
bit['A'] = bit['G'] = bit['T'] = bit['C'] = 0;
for (int j = 0; j < m; ++ j) {
bit[DNA[j][i]] ++;
}
if (get_bit('A')) {
ans += m-bit['A'];
printf("%c",'A');
}else if (get_bit('C')) {
ans += m-bit['C'];
printf("%c",'C');
}else if (get_bit('G')) {
ans += m-bit['G'];
printf("%c",'G');
}else if (get_bit('T')) {
ans += m-bit['T'];
printf("%c",'T');
}
}
printf("\n%d\n",ans);
}
return 0;
}
相关文章推荐
- DNA Consensus String UVA - 1368
- UVa1368 DNA Consensus String
- UVa 1368 DNA Consensus String (DNA序列)
- UVA - 1368 - DNA Consensus String (字符串处理)
- UVA-1368-DNA Consensus String 基础题 贪心 模拟 详细注释
- UVa 1368 - DNA Consensus String
- UVA - 1368 DNA Consensus String
- UVa 1368 - DNA Consensus String
- 习题3-7 UVa1368 DNA Consensus String
- UVA 1368 DNA Consensus String【ACM/ICPC Seoul 2006】
- 《算法竞赛入门经典2ndEdition 》习题3-7 DNA序列(DNA Consensus String, Uva1368)
- Uva 1368 DNA Consensus String
- Uva.1368 DNA Consensus String
- uva 1368 DNA Consensus String
- UVa 1368 DNA Consensus String(贪心+计数)
- UVA 1368 - DNA Consensus String
- UVA_1368 - DNA Consensus String
- uva1368 - DNA Consensus String
- UVa 1368 DNA Consensus String
- UVA 1368 DNA Consensus String