Human Gene Functions(poj 1080)
题目大意是:给定两组DNA序列,要你求出它们的最大相似度
每个字母与其他字母或自身和空格对应都有一个打分,求在这两个字符串中插入空格,让这两个字符串的匹配分数最大
/*
思路是很好想的,设f[i][j]为A染色体前i个基因和B染色体前j个基因匹配的最大值
第一次测样例WA了一把,f又没有赋最小值,今天第二次了,幸亏样例测出来了,不然又要WA一次。
*/
#include<cstdio>
#include<iostream>
#include<cstring>
#define N 110
using namespace std;
int a[N],b[N],f[N][N],n,m;
int v[][]={{,-,-,-,-},
{-,,-,-,-},
{-,-,,-,-},
{-,-,-,,-},
{-,-,-,-,}};
void work()
{
scanf("%d",&n);
for(int i=;i<=n;i++)
{
char c;cin>>c;
if(c=='A')a[i]=;
if(c=='C')a[i]=;
if(c=='G')a[i]=;
if(c=='T')a[i]=;
}
scanf("%d",&m);
for(int i=;i<=m;i++)
{
char c;cin>>c;
if(c=='A')b[i]=;
if(c=='C')b[i]=;
if(c=='G')b[i]=;
if(c=='T')b[i]=;
}
f[][]=;
for(int i=;i<=n;i++)
for(int j=;j<=m;j++)
{
if(i)f[i][j]=max(f[i][j],f[i-][j]+v[a[i]][]);
if(j)f[i][j]=max(f[i][j],f[i][j-]+v[][b[j]]);
if(i&&j)f[i][j]=max(f[i][j],f[i-][j-]+v[a[i]][b[j]]);
}
printf("%d\n",f[n][m]);
}
int main()
{
freopen("jh.in","r",stdin);
int T;scanf("%d",&T);
while(T--)
{
memset(f,,sizeof(f));
work();
}
return ;
}
Human Gene Functions(poj 1080)的更多相关文章
- poj 1080 Human Gene Functions(lcs,较难)
Human Gene Functions Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 19573 Accepted: ...
- hdu 1080 Human Gene Functions(DP)
题意: 人类基因由A.C.G.T组成. 有一张5*5的基因表.每格有一个值,叫相似度.例:A-C:-3.意思是如果A和C配对, 则它俩的相似度是-3[P.S.:-和-没有相似度,即-和-不能配对] 现 ...
- 刷题总结——Human Gene Functions(hdu1080)
题目: Problem Description It is well known that a human gene can be considered as a sequence, consisti ...
- UVALive 2324 Human Gene Functions(动态规划)
题意:求出将两个字符串改成一样长度所能形成最大的相似度. 思路:这个可以说是编辑距离的一个变形,编辑距离最终状态时要两个字符串完全一致,这个就是要求长度一样,而且这个只允许插入“—”这一个字符.模仿编 ...
- POJ1080Human Gene Functions(LCS变形)
题目链接 题目:给出两个串,每匹配一种有一种权值,求权值最大的匹配串 就是 最长公共子序列的 的思想: 首先对于 i 和 j 来比较, 一种情况是i和j匹配,此时 dp[i][j] = dp[i - ...
- 【POJ 1080】 Human Gene Functions
[POJ 1080] Human Gene Functions 相似于最长公共子序列的做法 dp[i][j]表示 str1[i]相应str2[j]时的最大得分 转移方程为 dp[i][j]=max(d ...
- poj 1080 ——Human Gene Functions——————【最长公共子序列变型题】
Human Gene Functions Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 17805 Accepted: ...
- POJ 1080:Human Gene Functions LCS经典DP
Human Gene Functions Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 18007 Accepted: ...
- hdu1080 Human Gene Functions() 2016-05-24 14:43 65人阅读 评论(0) 收藏
Human Gene Functions Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Oth ...
随机推荐
- eclipse中新建python项目报错:Project interpreter not specified
eclipse-windows-preferences-python
- eclipse中Preferences的一些设置
1.在Eclipse里面设置了java文件保存时自动格式化,在java->Code Style->Formatter里设置了自定义的格式化的样式,这样每次保存后都会自动格式化代码,用了一段 ...
- vector与set区别(基础知识)
首先,vector是序列式容器而set是关联式容器.set包含0个或多个不重复不排序的元素.也就是说set能够保证它里面所有的元素都是不重复的.另外对set容器进行插入时可以指定插入位置或者不指定插入 ...
- ci为什么必须得写构造函数
构造函数 如果要在你的任意控制器中使用构造函数的话,那么必须在里面加入下面这行代码: parent::__construct(); 这行代码的必要性在于,你此处的构造函数会覆盖掉这个父控制器类中的构造 ...
- https://github.com/yrs244742688/GeneratePemWithMoAndEx RSA加密
<RSAKeyValue> <Modulus> xA7SEU+e0yQH5rm9kbCDN9o3aPIo7HbP7tX6WOocLZAtNfyxSZDU16ksL6 Wjuba ...
- golang社工库数据扫描程序
https://github.com/xiaojiong/scanfile 演示站点: http://www.weigongkai.com/ 7G数据 2s完成扫描 package scanfil ...
- iOS6新特征:UICollectionView高级使用示例之CircleLayout
DEMO 下面再看看Demo运行的效果图,通过这样的一个Demo,我们可以看出,使用UICollectionView可以很方便的制作出照片浏览等应用.并且需要开发者写的代码也不多. 程序刚刚启 ...
- NoClassDefFoundError: org/apache/commons/pool/impl/GenericObjectPool
错误:Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/pool/impl ...
- (转)DoDataExchange执行时机
void CRegisterDialog::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DAT ...
- C++ 模板双向不循环链表!!
CTDChain<T,sort,equal,pointer> * nodeTemp = NULL; -------------------------------------------- ...