UVA1368解题报告

我的一个审题误区是以为要在这几个序列里找到ham值最小的,实际上并不是这样,他要的是一个最小的ham值的DNA序列,并不一定要在已有的DNA序列里。所以这个简单了不少,因为我们可以一列一列的比较,一列一个字符的输出。这省去了我的不少开销。要相似度最大输出每列出现频率最高的即可,因为只有四个字符用map映射即可。

附上AC代码Time 0ms

#include
#include
#include
#include
#include
#include
using namespace std;

const int maxm=50+10;
const int maxn=1000+10;
const char dna[]="TAGC";

int main()
{
    int T;
    scanf("%d",&T);
    while(T--)
    {
        int m,n,ham=0;
        map mm[maxn];
        string DNA[maxm];
        scanf("%d %d",&m,&n);
        for(int i=0;i>DNA[i];
        for(int i=0;ians) { ans=temp; pos=j; }
                else{ if(temp==ans){
                    if(dna[j]


你可能感兴趣的:(解题报告)