【Hdu】1080 Human Gene Functions

原创 2015年07月07日 22:35:23
#include <cstdio>
#include <cstring>
#include <cstdlib>
using namespace std;

//A:0    C:1    G:2    T:3    -:4
const int g[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,-1121};
const int L=120;
const int M=-100000000;

char s[L],t[L]; int ls,lt;
int cs[L],ct[L],f[L][L];                    

inline int find(char a)
{
    if (a=='A') return 0;
    if (a=='C') return 1;
    if (a=='G') return 2;
    if (a=='T') return 3;
    return 4;
}

inline int max(int i,int j)
{
    return i>j?i:j;
}

int main(void)
{    
    int cas;
    scanf("%d",&cas);
    for (int cc=1;cc<=cas;cc++)
    {
        scanf("%d%s%d%s",&ls,&s[1],<,&t[1]);
        for (int i=1;i<=ls;i++) cs[i]=find(s[i]);
        for (int i=1;i<=lt;i++) ct[i]=find(t[i]);
    
        for (int i=0;i<=ls;i++)
            for (int j=0;j<=lt;j++) f[i][j]=M;
        f[0][0]=0;
    
        for (int i=1;i<=ls;i++) f[i][0]=f[i-1][0]+g[cs[i]][4];
        for (int j=1;j<=lt;j++) f[0][j]=f[0][j-1]+g[4][ct[j]];
        for (int i=1;i<=ls;i++)
            for (int j=1;j<=lt;j++)
            {
                f[i][j]=max(f[i-1][j]+g[cs[i]][4],f[i][j-1]+g[4][ct[j]]);
                f[i][j]=max(f[i][j],f[i-1][j-1]+g[cs[i]][ct[j]]);
            }
        printf("%d\n",f[ls][lt]);
    }
    
    return 0;
}


版权声明:本文为博主原创文章,未经博主允许不得转载。

poj1080 - Human Gene Functions

想看更多的解题报告: http://blog.csdn.net/wangjian8006/article/details/7870410                              ...
  • wangjian8006
  • wangjian8006
  • 2012年06月01日 13:41
  • 1438

hdu1080 Human Gene Functions (DP动态规划,带权最长公共子串)

Human Gene Functions Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Ot...
  • u013021513
  • u013021513
  • 2015年08月24日 22:17
  • 229

HDU Human Gene Functions

 Human Gene Functions Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 65536/32768K (Java/...
  • yandawcheng
  • yandawcheng
  • 2016年03月26日 11:24
  • 117

HDU - 1080 Human Gene Functions(基础dp)

Human Gene Functions Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Ot...
  • HHH_go_
  • HHH_go_
  • 2017年05月19日 17:50
  • 235

POJ 1080 Human Gene Functions -- 动态规划(最长公共子序列)

题目地址:http://poj.org/problem?id=1080 Description It is well known that a human gene can be consider...
  • JDPlus
  • JDPlus
  • 2014年02月23日 09:57
  • 2463

动态规划13 Human Gene Functions

Human Gene Functions Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 65536/32768K (Java/Ot...
  • qq_36921652
  • qq_36921652
  • 2018年01月28日 16:10
  • 15

hdu 1080 Human Gene Functions

...
  • xinag578
  • xinag578
  • 2015年07月24日 16:33
  • 286

HDU 1080 Human Gene Functions

Human Gene Functions Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Oth...
  • dongdongzhang_
  • dongdongzhang_
  • 2014年04月01日 20:35
  • 404

1080 Human Gene Functions

编辑距离问题,dp类似最长公共子序列f[i,j]=max{f[i-1,j]+w(a[i],BLANK),  //a的i用空格匹配f[i,j-1]+w(BLANK,b[j]),  //b的j用空格匹配f...
  • twilightgod
  • twilightgod
  • 2008年12月12日 18:43
  • 316

hdu——1080——Human Gene Functions

Problem Description It is well known that a human gene can be considered as a sequence, consisting ...
  • u011470356
  • u011470356
  • 2014年03月04日 18:24
  • 363
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:【Hdu】1080 Human Gene Functions
举报原因:
原因补充:

(最多只允许输入30个字)