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 |
哭了,把各个关系对应的数据输错了,一直Wrong Answer 哭了表示换了3个方法,唉,后来突然发现关系数据错了。。。。。 好了,贴个代码 #include<iostream> #include<cstdio> #include<cstring> using namespace std; char str1[1005]; char str2[1005]; int gene[1005][1005]; char map[2000]; int main() { map['A']=0; map['C']=1; map['G']=2; map['T']=3; map['-']=4; int score[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}}; int t,x,y; cin>>t; while(t--) { scanf("%d%s",&x,str1); scanf("%d%s",&y,str2); gene[0][0]=0; for(int i=1;i<=x;i++) gene[0][i]=gene[0][i-1]+score[map[str1[i-1]]][4]; for(int i=1;i<=y;i++) gene[i][0]=gene[i-1][0]+score[4][map[str2[i-1]]]; int m1,m2,m3; for(int i=1;i<=y;i++) { for(int j=1;j<=x;j++) { m1=gene[i-1][j]+score[4][map[str2[i-1]]]; m2=gene[i][j-1]+score[map[str1[j-1]]][4]; m3=gene[i-1][j-1]+score[map[str2[i-1]]][map[str1[j-1]]]; gene[i][j]=max(max(m1,m2),max(m2,m3)); } } cout<<gene[y][x]<<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