当前位置: 首页 > news >正文

南宁有多少家网站建设推广的公司使用模块化的网站

南宁有多少家网站建设推广的公司,使用模块化的网站,海南小程序开发,做网站 公司【题目链接】 洛谷 P1140 相似基因 【题目考点】 1. 线性动规:求最长公共子序列 【解题思路】 将ACGT四种碱基,以及无碱基对应五个编号:A-0, C-1, G-2, T-3, 无-4 先设二维数组p保存碱基之间的相似度,p[i][j]表示编号为i的碱…

【题目链接】

洛谷 P1140 相似基因

【题目考点】

1. 线性动规:求最长公共子序列

【解题思路】

将ACGT四种碱基,以及无碱基对应五个编号:A-0, C-1, G-2, T-3, 无-4
先设二维数组p保存碱基之间的相似度,p[i][j]表示编号为i的碱基和编号为j的碱基之间的相似度。
特殊地,无碱基和无碱基的相似度p[4][4]在代码中不会用到,设为0就行。

给定两个有ACGT构成的基因序列,也就是由整数0~3构成的整数序列,在这两个序列中取出两个子序列,可以在两个子序列中任意位置插入任意数量的4(也就是无-),得到两个等长的序列。这两个等长序列对应位置的数字构成很多数对。
这两个序列的相似度为数对序列中每个数对的相似度的加和。
求两序列的取出两子序列能得到的最大的相似度。

该题形式和最长公共子序列问题相似,可以用与之相似的方法定义状态,分析状态转移方程。

1. 状态定义

给定两个整数序列分别为a、b,长度分别为an、bn。

  • 阶段:a的前i个数字,b的前j个数字
  • 决策:确定一个数对
    一个序列中的一个数字和另一序列中的一个数字对应,可以构成一个数对。
    一个序列中的一个数字不与另一序列中的个数字对应,那么也就是和数字4对应,也可以构成数对。
  • 策略:数对序列
  • 策略集合:a的前i个数字,b的前j个数字所能构成的所有数对序列
  • 条件:每个数对的相似度加和最大
  • 统计量:相似度

状态定义
dp[i][j]:a的前i个数字与b的前j个数字所能构成的所有数对序列中,相似度加和最大的序列的相似度。
初始状态
dp[0][0] = 0:a的前0个数字与b的前0个数字所能构成的所有数对序列的相似度一定为0。
dp[i][0]:a的前i个数字与b的前0个数字所能构成的所有数对的相似度,就是a的前i个数字每个数字都与数字4配对。
a的前i个数字都与4配对的相似度,就是a的前i-1个数字都与4配对的相似度,加上第i个数字与4配对的相似度。
满足递推式dp[i][0] = dp[i-1][0]+p[a[i]][4]
dp[0][j]:a的前0个数字与b的前j个数字所能构成的所有数对的相似度,就是b的前j个数字每个数字都与数字4配对。
b的前j个数字都与4配对的相似度,就是b的前j-1个数字都与4配对的相似度,加上第j个数字与4配对的相似度。
满足递推式dp[0][j] = dp[0][j-1]+p[4][b[j]]

状态转移方程
  • 策略集合:a的前i个数字,b的前j个数字所能构成的所有数对序列
  • 分割策略集合:根据如何构造最后一个数对分割策略集合
  1. 如果最后一个数对是a的第i个数字和“无”构成的,也就是(a[i],4),那么a的前i个数字与b的前j个数字的最大相似度,就是a的前i-1个数字与b的前j个数字的最大相似度,再加上数对(a[i], 4)的相似度,即dp[i-1][j]+p[a[i]][4]
  2. 如果最后一个数对是“无”和b的第j个数字构成的,即(4, b[j])那么a的前i个数字与b的前j个数字的最大相似度,就是a的前i个数字与b的前j-1个数字的最大相似度,再加上数对(4, b[j])的相似度,即dp[i][j-1]+p[4][b[j]]
  3. 如果最后一个数对是a的第i个数字和b的第j个数字构成的,即(a[i], b[j])那么a的前i个数字与b的前j个数字的最大相似度,就是a的前i-1个数字与b的前j-1个数字的最大相似度,再加上数对(a[i], b[j])的相似度,即dp[i-1][j-1]+p[a[i]][b[j]]
  4. 以上三种情况取最大值,即为dp[i][j]的值。

最后,序列a、b(长为an、bn)的最大相似度为dp[an][bn]

【题解代码】

解法1:线性动规

#include <bits/stdc++.h>
#define INF 0x3f3f3f3f
using namespace std;
#define N 105
int p[5][5] = {{5,-1,-2,-1,-3},{-1,5,-3,-2,-4},{-2,-3,5,-2,-2},{-1,-2,-2,5,-1},{-3,-4,-2,-1,0}};//p[i][j]:下标i对应字符与下标j对应字符的相似度 特殊地,空变为空相似度应该为0。
int a[N], b[N], an, bn, dp[N][N];//dp[i][j]:a的前i个字符与b的前j个字符的最大相似度,a的前i个字符与b的前j个字符的所有对应方案中,相似度最高的方案的相似度 
int toNum(char c)//获取字符c对应的下标 
{switch(c){case 'A':return 0;case 'C':return 1;case 'G':return 2;case 'T':return 3;}
}
int main()
{char c;cin >> an;for(int i = 1; i <= an; ++i){cin >> c;a[i] = toNum(c);}cin >> bn; for(int i = 1; i <= bn; ++i){cin >> c;b[i] = toNum(c);}for(int i = 1; i <= an; ++i)dp[i][0] = dp[i-1][0]+p[a[i]][4];for(int j = 1; j <= bn; ++j)dp[0][j] = dp[0][j-1]+p[4][b[j]]; for(int i = 1; i <= an; ++i)for(int j = 1; j <= bn; ++j)dp[i][j] = max(dp[i-1][j]+p[a[i]][4], max(dp[i][j-1]+p[4][b[j]], dp[i-1][j-1]+p[a[i]][b[j]]));cout << dp[an][bn];return 0;
}
http://www.dtcms.com/a/514461.html

相关文章:

  • 网站建设廾金手指专业壹陆帝国cms转wordpress
  • 温州网站建设方案服务asp网站有哪些
  • 北京视频直播网站建设销售管理软件app
  • 网站后台如何添加视频江苏建站服务
  • 外贸网站建设专业住房和城乡建设部网站无在建
  • 北京市城乡结合部建设领导小组办公室网站上传网站流程
  • 有名的网站惠州市建网站公司
  • 如何做网站平台企业网站源码去一品资源网
  • 网站栅格什么是电子商务网站开发
  • wordpress里面的附件如何导出电脑系统优化软件十大排名
  • 网站如何做业务深圳网站设计公司怎么做
  • 网站建设计划方案模板下载四川淘宝网站建设方案
  • 拍卖 网站 建设学做ppt推荐网站
  • 基于mvc的jsp网站开发程序员做网站外快
  • 手机网站页面尺寸如何用外网ip做网站
  • 参与做网站的收获企业运营过程中具有控制职能的环节是
  • 珠海市网站建设品牌织梦服务行业手机网站模板
  • wordpress 模板 源码优化大师会员兑换码
  • 安徽省建设厅证书查询官方网站企业做网站的费用如何科目
  • 网站设计步骤是什么中国建设银行最新招聘信息网站
  • 绵阳建设工程信息网站做流量哪个网站好
  • 如何在云服务器上搭建网站手机电视网站大全
  • 青岛建网站多少钱网站建设开题报告书
  • 建设网站方法有哪些内容前端直播网站怎么做
  • 支付网站搭建wordpress 删除重复文章
  • 做论坛网站需要多大空间中国生态文明建设的意义和目标
  • 协会网站开发阳光家园广州网站
  • 怎么样建公司网站北京建立网站
  • 松溪网站建设做软件难吗
  • 网站该怎么做wordpress打赏链接怎么实现