HDU 1080 DP

HDU 1080 DP

大家好,又见面了,我是全栈君。

匹配两个人相似度。

A,G,C。T。每两个都会有一个相应的值,给出两串基因。长度能够不一样,能够在基因中间加_使两串长度一样。然后有一个相应值。求最大相应值。

先做出相应的表

DP方程:

x=dp[i-1][j-1]+hash[str_a[i-1]][str_b[j-1]];
y=dp[i-1][j]+hash[str_a[i-1]][‘-‘];
z=dp[i][j-1]+hash[str_b[j-1]][‘-‘];
p[i][j]=Max(x,y,z);

#include "stdio.h"
#include "string.h"

int Max(int a,int b,int c)
{
    int x;
    x=a;
    if (b>x) x=b;
    if (c>x) x=c;
    return x;
}
int main()
{
    int Case,len_a,len_b,x,y,z,i,j;
    int dp[110][110],hash[210][210];
    char str_a[110],str_b[110];

    hash['A']['A']=hash['C']['C']=hash['T']['T']=hash['G']['G']=5;
    hash['A']['C']=hash['C']['A']=hash['A']['T']=hash['T']['A']=hash['-']['T']=hash['T']['-']=-1;
    hash['A']['G']=hash['G']['A']=hash['C']['T']=hash['T']['C']=hash['G']['T']=hash['T']['G']=hash['-']['G']=hash['G']['-']=-2;
    hash['A']['-']=hash['-']['A']=hash['C']['G']=hash['G']['C']=-3;
    hash['C']['-']=hash['-']['C']=-4;

    scanf("%d",&Case);
    while (Case--)
    {
        scanf("%d%s%d%s",&len_a,str_a,&len_b,str_b);

    //    memset(dp,0,sizeof(dp));
        dp[0][0]=0;
        for (i=1;i<=len_a;i++)
            dp[i][0]=dp[i-1][0]+hash['-'][str_a[i-1]];
        for (i=1;i<=len_b;i++)
            dp[0][i]=dp[0][i-1]+hash['-'][str_b[i-1]];

        for (i=1;i<=len_a;i++)
            for (j=1;j<=len_b;j++)
            {
                x=dp[i-1][j-1]+hash[str_a[i-1]][str_b[j-1]];
                y=dp[i-1][j]+hash[str_a[i-1]]['-'];
                z=dp[i][j-1]+hash[str_b[j-1]]['-'];
                dp[i][j]=Max(x,y,z);
            }
        printf("%d\n",dp[len_a][len_b]);
    }
    return 0;
}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/115445.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • kubernetes入门到精通(二):k8s部署Tomcat集群,基于NTFS协议的文件集群共享,Service提供负载均衡,端口转发工具Rinetd配置外部访问

    配置Docker阿里云镜像加速服务登录阿里云账号,进入控制台->容器镜像服务(不需要有阿里云的服务器,只要注册账号即可)在两台node节点上配置好阿里云的镜像加速。重启一下dockersudosystemctlrestartdocker重启一下k8ssystemctlstartkubelet部署Tomcat集群方法1:使用可视化界面部署tomcat集群dashboard->工作负载->创建->创建应用稍等几分钟之后,

    2022年4月7日
    42
  • java正则表达式详解

    java正则表达式详解一、正则表达式术语1)元字符:非一般字符,具有某种意义的字符。如:\bX:\b边界符,以X开始的单词2)正则表达式语法大全 字符 说明 \ 将下一字符标记为特殊字符、文本、反向引用或八进制转义符。例如,”n”匹配字符”n”。”\n”匹配换行符。序列”\\”匹配”\”,”\(“匹配”(“。 …

    2022年5月31日
    42
  • enableEventValidation 回发或回调参数无效 的解决办法[通俗易懂]

    enableEventValidation 回发或回调参数无效 的解决办法[通俗易懂]回发或回调参数无效。在配置中使用<pagesenableEventValidation=”true”/>或在页面中使用<%@PageEnableEventValidation=”true”%>启用了事件验证。出于安全目的,此功能验证回发或回调事件的参数是否来源于最初呈现这些事件的服务器控件。如果数据有效并且是预期的,则使用ClientScript…

    2022年7月24日
    12
  • 黑盒测试方法介绍_黑盒测试两种基本方法

    黑盒测试方法介绍_黑盒测试两种基本方法2007测试用例的设计方法(全)目录:等价类划分方法边界值分析方法错误推测方法因果图方法判定表驱动分析方法正交实验设计方法功能图分析方法场景设计方法等价类划分方法:一.方法简介1.定义是把所有可能的输入数据,即程序的输入域划分成若干部分(子集),然后从每一个子集中选取少数具有代表性的数据作为测试用例。该方法是一种重要的,常用…

    2022年10月4日
    5
  • C# DateTimePicker:日期时间控件「建议收藏」

    C# DateTimePicker:日期时间控件「建议收藏」日期时间控件(DateTimePicker)在时间控件中的应用最多,主要用于在界面上显示当前的时间。Format属性提供了4个属性值,如下所示。Short:短日期格式,例如2017/3/1;Long:长日期格式,例如2017年3月1日;…

    2022年5月24日
    579
  • ubuntu 安装QQ 和微信「建议收藏」

    1.下载deb安装包直接去longene官网下载就好了WineQQ7.8-20151109-Longene:http://www.longene.org/download/WineQQ7.8-20151109-Longene.deb下载完之后直接dpkg-iWineQQ7.8-20151109-Longene.deb如果是16.04LTS版本的系统,就执行sudogd

    2022年4月11日
    44

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号