zoukankan      html  css  js  c++  java
  • PKU1080Human Gene Functions(基因相似度,动态规划)

    328K 0MS GCC 983B 2009-01-09 08:57:52

    对字符串的最后一位分析,分三种情况:(第一个字符串有n位,第二个字符串有m位)

    1)n位和m位匹配+前面子串的最优值(第一个基因的前n-1位,第二个基因的前m位)

    2)第一个基因的最后一位(即n位)与‘-’匹配+前面子串的最优值(第一个基因的前n-1位,第二个基因的前m位)

    3)第二个基因的最后一位(即m位)与‘-’匹配+前面子串的最优值(第一个基因的前n位,第二个基因的前m-1位)

    核心代码:

    best[i][j]=max(best[i-1][j-1]+table[atod(a[i])][atod(b[j])],best[i-1][j]+table[atod(a[i])][4],best[i][j-1]+table[4][atod(b[j])]);

    初始化工作:

    for(i=1;i<=lena;i++)
      best[i][0]=best[i-1][0]+table[atod(a[i])][4];
     for(i=1;i<=lenb;i++)
      best[0][i]=best[0][i-1]+table[4][atod(b[i])];

    其中table记录的是题目所给的基因函数的表格。

    代码如下:

     

    Code
  • 相关阅读:
    oracle trunc()函数的用法——日期、数字
    ORACLE定时任务时间间隔设置
    Oracle JOB 间隔时间详解
    "规格"与"数量"的英文缩写是什么
    “金额”“合计”用英语怎么说?有什么区别么?
    关于狼性的团队励志名言警句
    5篇关于职场技巧的励志文章
    菜单权限分配源码奉送V2.0
    安装 SQL Server 客户端驱动程序
    一步步开发自己的博客 .NET版(9、从model first替换成code first 问题记录)
  • 原文地址:https://www.cnblogs.com/pandy/p/1372279.html
Copyright © 2011-2022 走看看