poj 1080 Human Gene Functions
2014-08-22 20:11
351 查看
#include<stdio.h> #include<string.h> #include<algorithm> using namespace std; int dp[150][105],match[150][105]; char s1[500010],s2[500010]; void Init() { match['A']['A']=match['C']['C']=match['G']['G']=match['T']['T']=5; match['A']['C']=match['C']['A']=match['A']['T']=match['T']['A']=-1; match[' ']['T']=match['T'][' ']=-1; match['A']['G']=match['G']['A']=match['C']['T']=match['T']['C']=-2; match['G']['T']=match['T']['G']=match['G'][' ']=match[' ']['G']=-2; match['A'][' ']=match[' ']['A']=match['C']['G']=match['G']['C']=-3; match['C'][' ']=match[' ']['C']=-4; } int main() { int t,n,m,i,j,k; while(scanf("%d",&t)!=EOF) { Init(); while(t--) { scanf("%d",&n);scanf("%s",s1+1); scanf("%d",&m);scanf("%s",s2+1); memset(dp,0,sizeof(dp)); for(i=1;i<=n;i++) dp[i][0]=dp[i-1][0]+match[s1[i]][' ']; for(i=1;i<=m;i++) dp[0][i]=dp[0][i-1]+match[' '][s2[i]]; for(i=1;i<=n;i++) { for(j=1;j<=m;j++) { dp[i][j]=max(dp[i-1][j]+match[s1[i]][' '],dp[i][j-1]+match[' '][s2[j]]); dp[i][j]=max(dp[i][j],dp[i-1][j-1]+match[s1[i]][s2[j]]); } } printf("%d\n",dp [m]); } }return 0; }
相关文章推荐
- POJ 1080 Human Gene Functions
- POJ 1080_Human Gene Functions
- POJ 1080-Human Gene Functions(dp)
- POJ 1080 Human Gene Functions DP
- POJ-1080-Human Gene Functions
- POJ---1080-Human Gene Functions
- POJ 1080 Human Gene Functions(字符串匹配得分,dp)
- POJ1080——Human Gene Functions
- poj_1080 Human Gene Functions(dp)
- POJ-1080- Human Gene Functions-DP-LCS变形
- 【动态规划】【poj 1080】Human Gene Functions
- POJ 1080 Human Gene Functions DP
- POJ 1080 Human Gene Functions DP
- POJ-1080-Human Gene Functions
- poj 1080:Human Gene Functions
- poj 1080 Human Gene Functions (最长公共子序列变形)
- POJ 1080 Human Gene Functions
- POJ 1080-Human Gene Functions(LCS变形-最大得分)
- POJ 1080 Human Gene Functions(DP:LCS)
- POJ - 1080 Human Gene Functions (DP)