机试题:查找基因序列问题
2015-05-11 19:52
204 查看
程序设计竞赛例题解三4.3
#include<iostream> using namespace std; const int num=101; long score[num][num]; char a[num],//给定目标序列 b[num],//数据库序列 seq[num];//得到的最相似序列 int dp() { long i,j,m,n; m=strlen(a); n=strlen(b); for(i=0;i<=m;++i) score[i] =(m-i)*(-7); for(j=0;j<=n;++j) score[m][j]=(n-j)*(-7); for(i=m-1;i>=0;--i){ for(j=n-1;j>=0;--j){ if(a[i]!=b[j]) score[i][j]=score[i+1][j+1]-4; else score[i][j]=score[i+1][j+1]+5; if(score[i+1][j]-7>score[i][j]) score[i][j]=score[i+1][j]-7; if(score[i][j+1]-7>score[i][j]) score[i][j]=score[i][j+1]-7; } } return score[0][0]; } int _tmain(int argc, _TCHAR* argv[]) { long i,n,max,p; scanf("%s%d",a,&n); for(i=0;i<n;++i) { scanf("%s",b); p=dp(); if(i==0||p>max||(p==max&&strcmp(b,seq)<0)){ strcpy(seq,b); max=p; } } printf("%ld\n%s\n",max,seq); return 0; }
相关文章推荐
- SDUT 1305 查找基因序列问题 dp
- 基因序列分类问题——多类分类器的设计
- JSON反序列的问题原因查找
- 经典问题:不断更新查找区间连续递增序列(区间合并模板+单点更新)(3308)
- 蓝桥试题测试---查找整数(scanf流问题)
- 圆周率,孪生素数,反转串,最近距离,基因牛,迷宫问题(2011年蓝桥杯预赛java本科组试题)
- 轻松解决不同关键字序列构成的二叉排序树ASL(平均查找长度)(成功)不同问题
- 二分查找非递减序列的边界问题
- 基因序列相似性问题CCR版(KM模式匹配)
- FZU 1040(基因序列相似性问题-CLCS)
- hdu 1080 pku1080 基因序列匹配问题
- GL-问题:会计序列定义界面,查找不到之前定义的序列。
- BZOJ1345: [Baltic2007]序列问题Sequence
- Median Maintainence—中间值查找问题
- 关于查找iOS中App路径时所要注意的一个问题
- Eclipse-远程Debug,查找生产环境问题的利器
- c语言中#include 路径查找问题
- 基因数据处理96之sparkBWA运行问题(yarn)
- 二分查找解决数组元素定位问题
- Ruby常量查找路径问题深入研究