UVA 1368 - DNA Consensus String(贪心)
2015-02-26 16:46
471 查看
题意:
给定n个DNA,求一个目标串,使得每个序列变换成目标所需次数最少,且字典序最小。思路:
贪心。每一位选存在最多的变化即可。AC代码
[code]#include <cstdio> #include <cstring> #include <algorithm> #include <cmath> #include <cstdlib> using namespace std; typedef long long ll; char dna[55][1010]; const char s[] = "ACGT"; int map[256]; char str[1010]; int m,n; void init() { memset(map,0,sizeof(map)); map['A'] = 0; map['C'] = 1; map['G'] = 2; map['T'] = 3; } int main() { init(); int T; scanf("%d",&T); while(T--) { scanf("%d%d",&m,&n); for(int i = 0; i < m; i++) { scanf("%s",dna[i]); } int vis[5]; int cnt = 0; for(int j = 0; j < n; j++) { memset(vis, 0,sizeof(vis)); for(int i = 0; i < m; i++) { vis[map[dna[i][j]]]++; } int flag = 0; int Max = vis[0]; for(int i = 0; i < 4; i++) { if(Max < vis[i]) { Max = vis[i]; flag = i; } } str[j] = s[flag]; cnt += (m - Max); } str = '\0'; printf("%s\n",str); printf("%d\n",cnt); } return 0; }
相关文章推荐
- 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(贪心+计数)
- UVA 1368 DNA Consensus String
- UVa1368 DNA Consensus String
- UVA_1368 - DNA Consensus String
- UVa 1368 - DNA Consensus String
- DNA Consensus String UVA - 1368
- Uva1368 DNA Consensus String
- UVA - 1368 DNA Consensus String :简单字符串处理
- Seoul 2006 / UVa 1368 DNA Consensus String (字符串处理)
- UVA - 1368 DNA Consensus String
- UVA - 1368 DNA Consensus String
- UVA 1368 - DNA Consensus String
- 3-7 uva 1368 - DNA Consensus String
- 3-7 DNA序列(DNA Consensus String, ACM/ICPC Seoul 2006, UVa1368)
- UVA 1368-DNA Consensus String