#include<stdio.h>
#include <string.h>
char a[100],b[100],c[100];
int max;
int ctoi(char a)
{
if(a=='A')
return 0;
if(a=='C')
return 1;
if(a=='G')
return 2;
if(a=='T')
return 3;
if(a=='-')
return 4;
}
int fun2(char a,char b)
{
int arr[5][5]={
{5,-1,-2,-1,-3},
{-1,5,-3,-2,-4},
{-2,-3,5,-2,-2},
{-1,-2,-2,5,-1},
{-3,-4,-2,-1,0}};
return arr[ctoi(a)][ctoi(b)];
}
int fun(char *s,int n,int l)
{
char s1[100];
int i,j;
int sum=0;
if(l==0)
{
/* printf("%s\n",s); */
for(i=0;i<strlen(a);i++)
{
sum+=fun2(a[i],s[i]);
}
if(sum>max)
max=sum;
return 0;
}
strcpy(s1,s);
for(i=0;i<=n;i++)
{
strcpy(s1,s);
for(j=n-1;j>=i;j--)
s1[j+1]=s1[j];
s1[i]='-';
s1[n+1]='\0';
fun(s1,n+1,l-1);
}
}
int main()
{
int t,i,m,n,temp;
scanf("%d",&t);
for(i=0;i<t;i++)
{
scanf("%d%s",&m,a);
scanf("%d%s",&n,b);
max=-3775;
if(m<n)
{
strcpy(c,a);
strcpy(a,b);
strcpy(b,c);
temp=m;
m=n;
n=temp;
}
fun(b,strlen(b),m-n);
printf("%d\n",max);
}
}
正文
pku(1080)没有通过2005-08-22 23:36:00
【评论】 【打印】 【字体:大 中 小】 本文链接:http://blog.pfan.cn/elva6401/4050.html
阅读(2506) | 评论(0)
版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!
评论