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 |
求各位大侠帮我looklook为什么一直WA啊。。。#include <stdio.h> #include <stdlib.h> #define MAX 150 int ScoringMatrix[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 SimilarityofGenes(int len0,char* gene0,int len1,char* gene1); void main() { int n,i; int len0,len1; int similarity=0; char gene0[MAX], gene1[MAX]; scanf("%d",&n); for(i=0;i<n;i++) { scanf("%d %s",&len0,gene0); scanf("%d %s",&len1,gene1); similarity = SimilarityofGenes(len0,gene0,len1,gene1); printf("%d\n",similarity); } } int Convert(char gene) { int result; switch(gene) { case 'A': result = 0;break; case 'C': result = 1;break; case 'G': result = 2;break; case 'T': result = 3;break; default: result = 4;break; } return result; } int Max(int a,int b,int c) { int result; result = (a>b ? a : b); result = result>c ? result : c; return result; } int SimilarityofGenes(int len0,char* gene0,int len1,char* gene1) { int i,j; char dp[MAX][MAX]; /*This is a LCS scenario*/ dp[0][0] = 0; for(i=1;i<=len0;i++) dp[i][0] = dp[i-1][0]+ScoringMatrix[Convert(gene0[i-1])][4]; for(j=1;j<=len1;j++) dp[0][j] = dp[0][j-1]+ScoringMatrix[4][Convert(gene1[j-1])]; for(i=1;i<=len0;i++) for(j=1;j<=len1;j++) { dp[i][j] = Max(dp[i-1][j-1]+ScoringMatrix[Convert(gene0[i-1])][Convert(gene1[j-1])], dp[i][j-1]+ScoringMatrix[4][Convert(gene1[j-1])], dp[i-1][j]+ScoringMatrix[Convert(gene0[i-1])][4]); } return dp[len0][len1]; } Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator