ACM学习-动态规划-基因查找序列问题
来源:互联网 发布:上班记录软件 编辑:程序博客网 时间:2024/05/20 18:50
// ACM学习-动态规划-基因查找序列问题.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include<iostream>
#include<string>
using namespace std;
const int num = 101;
long score[num][num];
char a[101],//给定目标序列
b[101],//数据库序列
seq[101];//得到的最相似序列
int dp(){
long i, j, m, n;
m = strlen(a);//目标序列长度
n = strlen(b);//数据库序列长度
for (i = 0; i <= m; i++)score[i][n] = (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("%s %ld",a,&n);
cin >> a;
cin >> n;
for (i = 0; i < n; i++){
cin >> b;
//scanf_s("%s",b);
p = dp();
if (i == 0||p>max||(p==max&&strcmp(b,seq)<0)){
strcpy_s(seq,b);
max = p;
}
}
cout << max << ":" << seq << endl;
return 0;
}
//
#include "stdafx.h"
#include<iostream>
#include<string>
using namespace std;
const int num = 101;
long score[num][num];
char a[101],//给定目标序列
b[101],//数据库序列
seq[101];//得到的最相似序列
int dp(){
long i, j, m, n;
m = strlen(a);//目标序列长度
n = strlen(b);//数据库序列长度
for (i = 0; i <= m; i++)score[i][n] = (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("%s %ld",a,&n);
cin >> a;
cin >> n;
for (i = 0; i < n; i++){
cin >> b;
//scanf_s("%s",b);
p = dp();
if (i == 0||p>max||(p==max&&strcmp(b,seq)<0)){
strcpy_s(seq,b);
max = p;
}
}
cout << max << ":" << seq << endl;
return 0;
}
0 0
- ACM学习-动态规划-基因查找序列问题
- 机试题:查找基因序列问题
- ACM学习-动态规划-背包问题
- ACM学习-动态规划-子问题编码
- ACM学习-动态规划-取数字问题
- ACM学习-动态规划-购物问题
- ACM学习-动态规划-物品供应问题
- ACM学习-动态规划-电子眼问题
- ACM学习-动态规划-复制书稿问题
- ACM学习-动态规划-采购计划问题
- ACM学习-动态规划-巡回演出问题
- ACM学习-动态规划-文本压缩问题
- POJ 1080 基因序列相似度计算 动态规划
- [acm]动态规划-最大连续子序列
- ACM-动态规划4-公共子序列
- ACM学习-动态规划-子问题编码-散列表
- ACM学习-动态规划-不老的传说问题
- ACM学习-动态规划-三角形最大面积问题
- hdoj 5496 Beauty of Sequence 【求序列所有子序列(去重后)的和】【好题】
- Linux 学习笔记 常用命令
- hdu5119 Happy Matt Friends( DP )
- 国庆随笔
- 插头dp模板(简单路径+一条回路+广义路径)
- ACM学习-动态规划-基因查找序列问题
- 软件工程之软件测试
- iOS - 常用的iOS Mac框架和库以及常用的中文开发博客
- Java中接口的清晰+形象理解
- 在Ubuntu上配置域名
- 组合与继承
- 网络编程-GET-同步和异步(delegate和block)
- 如何查看mac系统是32位还是64位的操作系统
- 10.1训练赛-北京现场赛--HDU5122