首页 > 其他分享 >P1140 相似基因

P1140 相似基因

时间:2024-05-15 16:32:47浏览次数:27  
标签:ll 基因 ik P1140 mp 相似 jk include dp

链接:https://www.luogu.com.cn/problem/P1140
题目:

思路:设置递推状态:dp[i][j]表示a的前i个碱基和b的前j个碱基配对的最大值。
那么递推:
1.ans1设置为dp[i-1][j-1]+val[a[i]][b[j]]就是说a[i]和b[j]可以凑一对,那么就凑;
2.ans2设置为dp[i-1][j]+val[0][a[i]]就是说a[i]和b的空凑一对;
3.ans3设置为dp[i][j-1]+val[0][b[j]],即b[j]与a的空凑一对。
然后取ans= max(ans1,ans2,ans3)即可
比较好的blog:https://www.luogu.com/paste/u7l8dqnn
代码:

#include<iostream>
#include<vector>
#include<algorithm>
#include<math.h>
#include<sstream>
#include<string>
#include<string.h>
#include<iomanip>
#include<stdlib.h>
#include<map>
#include<queue>
#include<limits.h>
#include<climits>
#include<fstream>
#include<stack>
typedef long long ll;
using namespace std;

const int N = 110;
ll dp[N][N];
map<char, int>mp;
ll val[5][5]={
	{INT_MIN,-3,-4,-2,-1},
	{-3,5,-1,-2,-1},
	{-4,-1,5,-3,-2},
	{-2,-2,-3,5,-2},
	{-1,-1,-2,-2,5}};
string a, b; 
ll dfs(ll ik, ll jk)
{
	if (!ik and !jk)return 0;
	if (ik == 0)
	{
		ll res = 0;
		for (int i = 0; i < jk; i++)res += val[0][mp[b[i]]];
		return dp[0][jk] = res;
	}
	if (!jk)
	{
		ll res = 0;
		for (int i = 0; i < ik; i++)res += val[0][mp[a[i]]];
		return dp[ik][0] = res;
	}
	if (dp[ik][jk])return dp[ik][jk];
	ll ans1 = dfs(ik-1,jk-1) + val[mp[a[ik - 1]]][mp[b[jk - 1]]];
	ll ans2 = dfs(ik - 1, jk) + val[mp[a[ik - 1]]][0];
	ll ans3 = dfs(ik, jk - 1) + val[mp[b[jk - 1]]][0];
	ll ans = max(ans1, max(ans2, ans3));
	return dp[ik][jk] = ans;
}
int main()
{
	int na, nb;
	cin >> na >> a >> nb >> b;
	if (a.length() < b.length())swap(a, b);
	//a.length()>=b.length()
	//dp[i][j]:a[i],b[j]
	
	mp['A'] = 1; mp['C'] = 2; mp['G'] = 3; mp['T'] = 4;
	cout << dfs(a.length(), b.length());//其实换不换都没关系,是我脑子抽了()
	return 0;
}

标签:ll,基因,ik,P1140,mp,相似,jk,include,dp
From: https://www.cnblogs.com/zzzsacmblog/p/18194128

相关文章

  • 易基因: WGBS等揭示梨驯化和改良过程中DNA甲基化对果实成熟的作用机制 | 作物育种
    大家好,这里是专注表观组学十余年,领跑多组学科研服务的易基因。梨(Pyrusssp.,蔷薇科杏仁核亚科)是世界上最重要的温带水果作物之一。与野生梨相比,栽培梨的果实在许多形态特征上表现出显著变化,包括果实大小、含糖量和核细胞含量。野生梨和栽培梨之间的比较分析可以深入了解关键表型变......
  • 洛谷题单指南-动态规划3-P1140 相似基因
    原题链接:https://www.luogu.com.cn/problem/P1140题意解读:两个只包含A、C、G、T4个字符的序列,根据已经定义好的字符-字符的相似度,计算两个序列最大的相似度,两个序列必须每个字符都配对,如果字符不够,可以插入'-'代替。解题思路:本题要解决几个问题:1、状态表示既然有两个序列,设......
  • beagle软件的安装以及基因型填充
     001、beagle软件官网:https://faculty.washington.edu/browning/beagle/beagle.html 002、下载最新版本: 003、赋予执行权限,并测试[root@pc1beagle]#lsbeagle.01Mar24.d36.jar[root@pc1beagle]#chmod+xbeagle.01Mar24.d36.jar[root@pc1beagle]#lsbeagle.01M......
  • 易基因:cfDNA甲基化组多模式分析早期检测食管鳞状细胞癌和癌前病变|Nature子刊
    大家好,这里是专注表观组学十余年,领跑多组学科研服务的易基因。食管癌(EC)是最常见的胃肠道恶性肿瘤之一,食管鳞状细胞癌(ESCC)是EC的主要组织学亚型,约占新EC病例的88%,大多数发生在东亚和中亚。与晚期ESCC的预后极差相比,早期ESCC(如黏膜内ESCC)和前体病变(如上皮内瘤变,IEN)可以通过内镜下整......
  • Linux 中sed命令实现从gff文件中仅仅提取基因名称
     001、(base)[b20223040323@admin1x_test]$ls##测试gff文件GCF_000001405.40_GRCh38.p14_genomic.fna.gzGCF_000001405.40_GRCh38.p14_genomic.gff(base)[b20223040323@admin1x_test]$grep-v"^#"GCF_000001405.40_GRC......
  • 个人的一种设想:能否使用元强化学*算法解决路径导航问题 —— 快速的适配于相似结构的
    pathfinding是人工智能领域的一个老问题,随着humanoid的应用火热起来这个问题也随之再度受关注。比较传统的人工智能方法一般都是使用A*这样的启发式的算法,不仅在2D领域同时也在3D(Voxelspace)领域有着较好的表现,不过随着深度学*和强化学*的*些年的快速发展也就有了一些使用深度强......
  • p1140 C语言循环数
    #include<stdio.h>#include<stdlib.h>#include<math.h>#include<string.h>#defineN100intmain(){intn,x,y,i,j,p,q,t,s;chara[N]={'0'};while(scanf("%s",&a)!=EOF){intb[N];......
  • Linux中bash: ls: 未找到命令… 相似命令是: ‘lz‘
    Linux中bash:ls:未找到命令…相似命令是:‘lz‘出错现象Linux中bash:ls:未找到命令…相似命令是:‘lz‘发现ls不能用了、ll、vi、vim都不能用了。输入ll命令提示:bash:ls:未找到命令…相似命令是:‘lz’出错原因环境变量PATH被修改了,是刚刚操作的修改影响......
  • 易基因:Nat Commun:RRBS测序揭示小鼠衰老过程中的DNA甲基化变化轨迹|研究速递
    大家好,这里是专注表观组学十余年,领跑多组学科研服务的易基因。DNA甲基化数据可以生成非常精确的年龄预测器,但关于这一关键表观遗传生物标志物在生命周期中的动态变化知之甚少。关于衰老不连续方面的研究仍处于起步阶段,关键的分子过程如表观基因组调控过程还有待研究。莱布尼......
  • 苹果开源高效语言模型 OpenELM;全球首个 AI 基因编辑器开源丨RTE 开发者日报 Vol.192
       开发者朋友们大家好: 这里是「RTE开发者日报」,每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享RTE(RealTimeEngagement)领域内「有话题的新闻」、「有态度的观点」、「有意思的数据」、「有思考的文章」、「有看点的会议」,但内容仅代表编......