相似基因

相似基因

题目描述

大家都知道,基因可以看作一个碱基对序列。它包含了4种核苷酸,简记作A,C,G,T。生物学家正致力于寻找人类基因的功能,以利用于诊断疾病和发明药物。

在一个人类基因工作组的任务中,生物学家研究的是:两个基因的相似程度。因为这个研究对疾病的治疗有着非同寻常的作用。两个基因的相似度的计算方法如下:

对于两个已知基因,例如AGTGATG和GTTAG,将它们的碱基互相对应。当然,中间可以加入一些空碱基-,例如:


A


G


T


G


A


T


-


G


-


G


T


-


-


T


A


G

这样,两个基因之间的相似度就可以用碱基之间相似度的总和来描述,碱基之间的相似度如下表所示:

那么相似度就是:(-3)+5+5+(-2)+(-3)+5+(-3)+5=9。因为两个基因的对应方法不唯一,例如又有:


A


G


T


G


A


T


G


-


G


T


T


A


-


G

相似度为:(-3)+5+5+(-2)+5+(-1)+5=14。规定两个基因的相似度为所有对应方法中,相似度最大的那个。

输入

共两行。每行首先是一个整数,表示基因的长度;隔一个空格后是一个基因序列,序列中只含A,C,G,T四个字母。1<=序列的长度<=100。

输出

仅一行,即输入基因的相似度。

样例输入

7 AGTGATG
5 GTTAG

样例输出

14分析:类似最长公共子序列的dp;代码:
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cmath>
#include <algorithm>
#include <climits>
#include <cstring>
#include <string>
#include <set>
#include <map>
#include <queue>
#include <stack>
#include <vector>
#include <list>
#define rep(i,m,n) for(i=m;i<=n;i++)
#define rsp(it,s) for(set<int>::iterator it=s.begin();it!=s.end();it++)
#define mod 1000000007
#define inf 0x3f3f3f3f
#define vi vector<int>
#define pb push_back
#define mp make_pair
#define fi first
#define se second
#define ll long long
#define pi acos(-1.0)
const int maxn=1e3+10;
const int dis[4][2]={{0,1},{-1,0},{0,-1},{1,0}};
using namespace std;
ll gcd(ll p,ll q){return q==0?p:gcd(q,p%q);}
ll qpow(ll p,ll q){ll f=1;while(q){if(q&1)f=f*p;p=p*p;q>>=1;}return f;}
int n,m,k,t,cost[maxn][maxn],dp[maxn][maxn];
string a,b;
void init()
{
    cost[‘A‘][‘A‘]=5;
    cost[‘A‘][‘C‘]=-1;
    cost[‘A‘][‘G‘]=-2;
    cost[‘A‘][‘T‘]=-1;
    cost[‘A‘][‘-‘]=-3;

    cost[‘C‘][‘C‘]=5;
    cost[‘C‘][‘A‘]=-1;
    cost[‘C‘][‘G‘]=-3;
    cost[‘C‘][‘T‘]=-2;
    cost[‘C‘][‘-‘]=-4;

    cost[‘G‘][‘G‘]=5;
    cost[‘G‘][‘A‘]=-2;
    cost[‘G‘][‘C‘]=-3;
    cost[‘G‘][‘T‘]=-2;
    cost[‘G‘][‘-‘]=-2;

    cost[‘T‘][‘T‘]=5;
    cost[‘T‘][‘A‘]=-1;
    cost[‘T‘][‘C‘]=-2;
    cost[‘T‘][‘G‘]=-2;
    cost[‘T‘][‘-‘]=-1;

    cost[‘-‘][‘-‘]=inf;
    cost[‘-‘][‘A‘]=-3;
    cost[‘-‘][‘C‘]=-4;
    cost[‘-‘][‘G‘]=-2;
    cost[‘-‘][‘T‘]=-1;
}
int main()
{
    int i,j;
    init();
    cin>>n>>a>>m>>b;
    rep(i,1,n)dp[i][0]=dp[i-1][0]+cost[a[i-1]][‘-‘];
    rep(i,1,m)dp[0][i]=dp[0][i-1]+cost[‘-‘][b[i-1]];
    rep(i,0,n-1)rep(j,0,m-1)
    {
        dp[i+1][j+1]=max({dp[i][j]+cost[a[i]][b[j]],dp[i+1][j]+cost[‘-‘][b[j]],dp[i][j+1]+cost[a[i]][‘-‘]});
    }
    printf("%d\n",dp[n][m]);
    //system("pause");
    return 0;
}
时间: 2024-08-02 12:49:23

相似基因的相关文章

【麦当劳肯德基】是美国在中国的基因武器试验场

有些时候,一提肯德基,我真的控制不住自己的情绪.在这里,我只是以一种十分客观的态度把肯德基的一些内幕告诉大家,只希望每个中国人... 能真正认识肯得基.我慢慢说我的经历吧. 本人是个在外漂泊的大学生,说来惭愧,在外也认识了不少朋友.我的一个朋友的父亲是中国银行某市的一个高层领导,他和美国的肯德基之间有些合作的关系,一次高层领导之间的互访使我朋友的父亲有幸参观了肯德基的鸡厂. 那是个对外严重保密的地方,任何人都不能随便入内的.那天我和朋友也正在上自习,朋友突然接到他父亲的电话,是从美国打来的越洋电

《长寿的基因》:尝试挑战主流医学界的观点,态度不严谨,有点像民间科学家。2星。

作者的身份是严肃的学者,书中的观点有一部分作者明说是跟主流医学界不同的,作者给出了他的证据,但是没说主流医学界对他的证据的态度,如果按他在书中的说法,是逻辑严谨的,有理有据的.我的看法是这种情况作者应该先去学术界吵架,吵出个结果来再向非专业读者宣传.有的没明确说是否有违主流观点但以我的了解是的,基于作者的态度,剩下的观点我也都打问号.基于这个原因,这本书我给2星. 几个重要的观点是:铁是万恶之源:引发阿尔茨海默病的元凶之一,诱发糖尿病的最重要的因素,全麦食品不如精制谷物好,如果你能够消化乳糖,那

什么是基因间隔区和内含子?

基因间隔区:An Intergenic region (IGR) is a stretch of DNA sequences located between genes. Intergenic regions are a subset of Noncoding DNA. Occasionally some intergenic DNA acts to control genes nearby, but most of it has no currently known function. It

抗TNF治疗改变JIA患者PBMC基因表达谱,可预测疗效

抗TNF治疗改变JIA患者PBMC基因表达谱,可预测疗效 Moorthy LN, et al. ACR 2007. Presentation No:1713. 背景:我们假设儿童期发生的特发性关节炎(JIA)和SLE的基因表达谱是独特的,抗细胞因子或细胞毒药物将改变之,并可能有预测疗效的价值. 目的:利用核酸微阵列技术,分析Etanercept治疗JIA以及环孢霉素/Rituximab(COME)联合治疗SLE,对患者外周血单个核细胞(PBMC)基因表达谱的影响. 方法:共 有4例活动性JIA[

自私的基因读后感

我时常觉得对于我们现代中国人的为人处世影响最大的就是达尔文,只不过他是通社会达尔文主义间接的影响着我们.关于社会达尔文主义,相信大家都很熟悉它的核心理论“物竞天择,适者生存”,及在我们的这个社会当中就是要有竞争,就是要适者生存,弱肉强食也是非常正常的事情.而对于这种思想给予解释最为独特的一本书便是<自私的基因>了.在<自私的基因>中,作者将人与动物的绝大部分行为都解释为对于基因的一种自私行为.用作者的话来说便是:我们和其他一切动物都是我们自己的基因所创造的机器.关于这本书我由于以下

自私的基因读后回忆

在古老的地球海洋上还没有生命的时候,一些分子排成了有规则的形状,开始复制自己,称之为复制因子.原始的复制因子可能是无机盐,但是因为晶体只能简单的不断增大其体积,而被最后被更坚强有机物代替,最后胜出的是蛋白质和DNA. 复制因子通过环境中的原料不停的复制自己,显然胜出需要对原料的抢夺能力和复制效率.原料被很快的耗尽,一些因子尝试分解其它的因子以获得原料来复制自己,另一些复制因子在自己的表面覆盖蛋白质以防止自己被其它的因子解体. 生存就是不断的掠夺与失去.一些因子开始联合起来共同生存,形成了细胞.组

基因检测如何让癌症变的可预防?

<滚蛋吧!肿瘤君>的女主角被白百合饰演地淋漓尽致,欢笑.幸福等很多美好事物被癌症全部击碎,让这个改编自真实故事的电影给很多人敲响警钟.癌症离大众并不遥远,我国早就成为癌症高发大国.癌症这一存在于基因深处的恶魔,随着国内环境的日益恶化,正成为大众的梦魇. 虽然现代医学已经发展到一定高度,但始终对癌症束手无策,癌症=死亡已经成为大众共识.从这个角度来看,对付癌症最有效的方法就是能够提前预测其发生的可能性,并在患病之前,将其扼杀.而当下唯一能做到这一点的,就是基因检测.从已病到未病,基因检测开启人类

2764: [JLOI2011]基因补全

2764: [JLOI2011]基因补全 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 570  Solved: 187[Submit][Status][Discuss] Description 在生物课中我们学过,碱基组成了DNA(脱氧核糖核酸),他们分别可以用大写字母A,C,T,G表示,其中A总与T配对,C总与G配对.两个碱基序列能相互匹配,当且仅当它们等长,并且任意相同位置的碱基都是能相互配对的.例如ACGTC能且仅能与TGCAG配对.一个

欧洲人浅色皮肤源自一万年前一祖先基因突变

----------------------------------------------------- 爱美的妹纸,你的SLC24A5基因是什么情况呀?欧洲人的SLC24A5基因在染色体15的比例上占了约0.0072,非洲等地人的SLC24A5基因则占据了0.175-0.226. -------------------------------------------------------- 目前,美国最新一项研究表明,欧洲人浅色皮肤源自一万年前一位祖先的基因突变. 这种肤色变化源于一位生活

CRISPR/Cas基因编辑技术最新研究进展

CRISPR/Cas系统是目前发现存在于大多数细菌与所有的古菌中的一种后天免疫系统,其以消灭外来的质体或者噬菌体并在自身基因组中留下外来基因片段作为“记忆”. CRISPR/Cas 系统全名为常间回文重复序列丛集/常间回文重复序列丛集关联蛋白系统(clustered regularly interspaced short palindromic repeats/CRISPR-associated proteins).目前已发现三种不同类型的 CRISPR/Cas系统,存在于大约40%和90%已测