hdu1560

来源:互联网 发布:谢霆锋厨艺知乎 编辑:程序博客网 时间:2024/05/21 06:46
蒟蒻的自我学习。。。
#include <cstring>#include <cstdio>#include <algorithm>#include <cmath>#include <iostream>using namespace std;char st[100][100];int n,ans,len,size[100];char dna[]={'A','C','G','T'};void dfs(int cnt,int len1[]){    if(cnt>len){return;}    int maxl=0;    for(int i=1;i<=n;i++)    {        maxl=max(maxl,size[i]-len1[i]);    }    if(maxl==0) {ans=cnt;return;}    if(maxl+cnt>len) {return;}    int p[10]={0};    for(int i=0;i<4;i++)    {        bool flag=false;        for(int j=1;j<=n;j++)        {            if(st[j][len1[j]+1]==dna[i])            {                flag=1;                p[j]=len1[j]+1;            }            else p[j]=len1[j];        }        if(flag)            dfs(cnt+1,p);        if(ans!=-1)            break;    }}int main(){    int cases;    scanf("%d",&cases);    while(cases--)    {        len=0;        scanf("%d",&n);        for(int i=1;i<=n;i++)        {            scanf("%s",st[i]+1);            size[i]=strlen(st[i]+1);            len=max(len,size[i]);        }        ans=-1;        int p[10]={0};        while(1)        {            dfs(0,p);            if(ans!=-1)            {                break;            }            len++;        }        printf("%d\n",ans);    }    return 0;}

0 0
原创粉丝点击