设为首页 加入收藏

TOP

POJ 1080 Human Gene Functions(LCS)(二)
2015-07-20 17:53:46 来源: 作者: 【 】 浏览:5
Tags:POJ 1080 Human Gene Functions LCS
TG 5 GTTAG 7 AGCTATT 9 AGCTTTAAA

Sample Output

 14 
21 
论LCS的不死性。LCS改编版。
#include
  
   
#include
   
     #include
    
      #include
     
       #include
      
        using namespace std; char s1[110],s2[110]; int dp[110][110]; int t,len1,len2; int mp[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 get(char c) { switch(c) { case 'A':return 0; case 'C':return 1; case 'G':return 2; case 'T':return 3; case '-':return 4; } } int main() { scanf("%d",&t); while(t--) { getchar(); scanf("%d%s",&len1,s1); scanf("%d%s",&len2,s2); memset(dp,0,sizeof(dp)); for(int i=1;i<=len1;i++) dp[i][0]=dp[i-1][0]+mp[get(s1[i-1])][get('-')]; for(int j=1;j<=len2;j++) dp[0][j]=dp[0][j-1]+mp[get('-')][get(s2[j-1])]; for(int i=1;i<=len1;i++) { for(int j=1;j<=len2;j++) { int t1=dp[i-1][j]+mp[get(s1[i-1])][get('-')]; int t2=dp[i][j-1]+mp[get('-')][get(s2[j-1])]; int t3=dp[i-1][j-1]+mp[get(s1[i-1])][get(s2[j-1])]; dp[i][j]=max(t1,max(t2,t3)); } } printf("%d\n",dp[len1][len2]); } return 0; }
      
     
    
   
  




首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇POJ 3087 Shuffle'm Up(模拟.. 下一篇从汇编来看i++与++i

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: