UVa 1368 - DNA Consensus String(贪心)
来源:互联网 发布:linux bash profile 编辑:程序博客网 时间:2024/05/16 18:30
题意
找出一个字符串,使得它的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;
}
0 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(检索)
- 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
- UVa:1368 DNA Consensus String
- uva 1368 - DNA Consensus String
- java concurrency: ConcurrentHashMap
- iOS 枚举使用
- 动态规划(1)总述
- 实现C++类中默认的四个方法默认构造函数、析构函数、拷贝构造函数、赋值函数
- Android控件开发之Chronometer计时器
- UVa 1368 - DNA Consensus String(贪心)
- 蓝牙技术4.1详细解析
- Hive命令
- HTTP同步/异步请求
- expect用法
- 动态规划(4)详细讲解各最短路径算法及比较
- FutureTask 深度解析
- xcode 编译设置
- 在MFC里面使用ADO访问微软的ACCESS数据库 实现增删改查