UVa 1368 - DNA Consensus String(贪心)
2014-09-03 16:42
435 查看
题意
找出一个字符串,使得它的Hamming Distance最小。
思路
对每个位置进行贪心,选出现次数最多的字母。
代码
#include <cstdio>
#include <iostream>
#include <string>
#include <cstring>
#define LL long long
#define lowbit(x) ((x) & (-x))
const int MAXN = 1e3 + 5;
const int INF = 0x3f3f3f3f;
using namespace std;
struct SCAN
{
char c;
int num;
}scan;
char str[55][MAXN];
int num[30];
int main()
{
//freopen("input.txt", "r", stdin);
int n, i, j, T, leng;
scanf("%d", &T);
while (T--)
{
int nerr = 0;
scanf("%d%d%*c", &n, &leng);
string ans;
for (i = 0; i < n; i++)
scanf("%s", str[i]);
for (i = 0; i < leng; i++)
{
memset(num, 0, sizeof num);
for (j = 0; j < n; j++)
num[str[j][i] - 'A']++;
scan.c = 'A', scan.num = num[0];
for (j = 1; j < 30; j++)
if (num[j] > scan.num)
scan.c = j + 'A', scan.num = num[j];
ans += scan.c;
for (j = 0; j < 30; j++)
if (j + 'A' != scan.c)
nerr += num[j];
}
cout << ans << endl;
cout << nerr << endl;
}
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
- UVA 1368 - DNA Consensus String
- 3-7 DNA序列(DNA Consensus String, ACM/ICPC Seoul 2006, UVa1368)
- UVA - 1368 DNA Consensus String
- UVa 1368 - DNA Consensus String
- uva1368 - DNA Consensus String
- UVa1368 DNA Consensus String
- UVA 1368(p58)----DNA Consensus String
- 小紫书 习题 3-7(UVA 1368) DNA序列(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