| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
Re:我也是这样做的,老有问题......帮我看看把In Reply To:晕死了,原来是数组开小了。。。。。。。。FT to death Posted by:11119999 at 2006-08-10 14:15:49 #include <iostream>
using namespace std;
int max(int a,int b,int c)
{
int max=a;
if(b>max)
max=b;
if(c>max)
max=c;
return max;
}
int main()
{
int T,lx,ly;
int a[7][7],i,j;
int x[200],y[200];
char xx,yy;
int f[200][200];
for(i=1;i<5;i++)
a[i][i]=5;
a[1][2]=a[2][1]=-1;a[1][3]=a[3][1]=-2;a[1][4]=a[4][1]=-1;a[1][5]=a[5][1]=-3;
a[2][3]=a[3][2]=-3;a[2][4]=a[4][2]=-2;a[2][5]=a[5][2]=-4;
a[3][4]=a[4][3]=-2;a[3][5]=a[5][3]=-2;
a[4][5]=a[5][4]=-1;
a[5][5]=0;
cin>>T;
while(T--)
{
cin>>lx;
for(i=1;i<=lx;i++)
{
cin>>xx;
if(xx=='A')
x[i]=1;
else if(xx=='C')
x[i]=2;
else if(xx=='G')
x[i]=3;
else
x[i]=4;
}
cin>>ly;
for(i=1;i<=ly;i++)
{
cin>>yy;
if(yy=='A')
y[i]=1;
else if(yy=='C')
y[i]=2;
else if(yy=='G')
y[i]=3;
else
y[i]=4;
}
f[0][0]=0;
for(j=1;j<=ly;j++)
f[0][i]=f[0][i-1]+a[5][y[j]];
for(i=1;i<=lx;i++)
f[i][0]=f[i-1][0]+a[x[i]][5];
for(i=1;i<=lx;i++)
for(j=1;j<=ly;j++)
f[i][j]=max(f[i-1][j-1]+a[x[i]][y[j]],f[i][j-1]+a[5][y[j]],f[i-1][j]+a[x[i]][5]);
cout<<f[lx][ly]<<endl;
}
return 0;
}
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator