P1140 相似基因 (动态规划)】的更多相关文章

题目背景 大家都知道,基因可以看作一个碱基对序列.它包含了4种核苷酸,简记作A,C,G,T.生物学家正致力于寻找人类基因的功能,以利用于诊断疾病和发明药物. 在一个人类基因工作组的任务中,生物学家研究的是:两个基因的相似程度.因为这个研究对疾病的治疗有着非同寻常的作用. 题目描述 两个基因的相似度的计算方法如下: 对于两个已知基因,例如AGTGATG和GTTAG,将它们的碱基互相对应.当然,中间可以加入一些空碱基-,例如: 这样,两个基因之间的相似度就可以用碱基之间相似度的总和来描述,碱基之间的…
洛谷P1140 相似基因 题目背景 大家都知道,基因可以看作一个碱基对序列.它包含了44种核苷酸,简记作A,C,G,TA,C,G,T.生物学家正致力于寻找人类基因的功能,以利用于诊断疾病和发明药物. 在一个人类基因工作组的任务中,生物学家研究的是:两个基因的相似程度.因为这个研究对疾病的治疗有着非同寻常的作用. 题目描述 两个基因的相似度的计算方法如下: 对于两个已知基因,例如AGTGATGAGTGATG和GTTAGGTTAG,将它们的碱基互相对应.当然,中间可以加入一些空碱基-,例如: 这样,…
分析 f[i][j] 表示 1数组的第i位和2数组的第j位匹配的最大值 f[1][1]=-2 f[2][1]=-2+5=3 f[3][1]=-2+5+5=8 三个决策: 1.由f[i-1][j-1]直接推得 2.a[i]位匹配'-' f[i][j]=Max(f[i-1][j]+v[4][a]); 3.b[j]位匹配'-' f[i][j]=Max(f) f[i][j]=f[i-1][j-1]+v[a[i]][b[j]] AC代码 // luogu-judger-enable-o2 #include…
题目链接: https://www.luogu.org/problemnew/show/P1140 题目背景 大家都知道,基因可以看作一个碱基对序列.它包含了44种核苷酸,简记作A,C,G,TA,C,G,T.生物学家正致力于寻找人类基因的功能,以利用于诊断疾病和发明药物. 在一个人类基因工作组的任务中,生物学家研究的是:两个基因的相似程度.因为这个研究对疾病的治疗有着非同寻常的作用. 题目描述 两个基因的相似度的计算方法如下: 对于两个已知基因,例如AGTGATGAGTGATG和GTTAGGTT…
传送门 https://www.cnblogs.com/violet-acmer/p/9852294.html 参考资料: [1]:https://www.cnblogs.com/real-l/p/9712029.html [2]:https://www.luogu.org/problemnew/solution/P1140 题解: 方法一:枚举所有可能(记忆型DP) 相关变量解释: m,n...................................................分别…
最近博客更不起来...然后又(照例)犯鼻炎了唉难受. 题目传送门 我们首先可以预处理碱基间的权值表.然后讲读入的碱基转化为数字,就变成了“数字匹配使权值最大”的问题.我们显然可以用动态规划解决. 两个序列配对上的dp状态设计相似,以前做过一道编辑距离也是类似配对的问题. 设f[i][j]表示第一个基因当前位置到了第i个碱基,第二个基因当前位置到了第j个碱基所能得到的最大相似度. 转移:lena*lenb 而且和状态也没有什么地方可以优化了. 决策:我们可以在每一次转移的时候有3种决策: A串留空…
题目:https://www.luogu.org/problemnew/show/P1140 题意: 给定两串基因串(只包含ATCG),在其中插入任意个‘-’使得他们匹配.(所以一共是5种字符) 这5种字符两两之间有一个匹配数值,要求使这两个字符串的匹配值之和最大. 思路: dp[i][j]表示匹配了s1中前i个字符和s2中前j个字符的最大匹配值. 完成s1[i]与s2[j]的匹配只有三种可能. 1.s1[i]之前已经匹配好,s2[j]配‘-’.即dp[i][j] = dp[i][j-1]+sc…
题目背景 大家都知道,基因可以看作一个碱基对序列.它包含了444种核苷酸,简记作A,C,G,TA,C,G,TA,C,G,T.生物学家正致力于寻找人类基因的功能,以利用于诊断疾病和发明药物. 在一个人类基因工作组的任务中,生物学家研究的是:两个基因的相似程度.因为这个研究对疾病的治疗有着非同寻常的作用. 题目描述 两个基因的相似度的计算方法如下: 对于两个已知基因,例如AGTGATGAGTGATGAGTGATG和GTTAGGTTAGGTTAG,将它们的碱基互相对应.当然,中间可以加入一些空碱基-,…
题目背景 大家都知道,基因可以看作一个碱基对序列.它包含了44种核苷酸,简记作A,C,G,TA,C,G,T.生物学家正致力于寻找人类基因的功能,以利用于诊断疾病和发明药物. 在一个人类基因工作组的任务中,生物学家研究的是:两个基因的相似程度.因为这个研究对疾病的治疗有着非同寻常的作用. 题目描述 两个基因的相似度的计算方法如下: 对于两个已知基因,例如AGTGATGAGTGATG和GTTAGGTTAG,将它们的碱基互相对应.当然,中间可以加入一些空碱基-,例如: 这样,两个基因之间的相似度就可以…
题目背景 大家都知道,基因可以看作一个碱基对序列.它包含了444种核苷酸,简记作A,C,G,TA,C,G,TA,C,G,T.生物学家正致力于寻找人类基因的功能,以利用于诊断疾病和发明药物. 在一个人类基因工作组的任务中,生物学家研究的是:两个基因的相似程度.因为这个研究对疾病的治疗有着非同寻常的作用. 题目描述 两个基因的相似度的计算方法如下: 对于两个已知基因,例如AGTGATGAGTGATGAGTGATG和GTTAGGTTAGGTTAG,将它们的碱基互相对应.当然,中间可以加入一些空碱基-,…
思路 类似于最长公共子序列 把一段基因和另外一段基因匹配  不够长的用空基因替换 #include<bits/stdc++.h> using namespace std; const int INF=10000000; int dp[10000][10000]; const int tab[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} }; int la,…
题目背景 大家都知道,基因可以看作一个碱基对序列.它包含了4种核苷酸,简记作A,C,G,T.生物学家正致力于寻找人类基因的功能,以利用于诊断疾病和发明药物. 在一个人类基因工作组的任务中,生物学家研究的是:两个基因的相似程度.因为这个研究对疾病的治疗有着非同寻常的作用. 题目描述 两个基因的相似度的计算方法如下: 对于两个已知基因,例如AGTGATG和GTTAG,将它们的碱基互相对应.当然,中间可以加入一些空碱基-,例如: 这样,两个基因之间的相似度就可以用碱基之间相似度的总和来描述,碱基之间的…
题目背景 大家都知道,基因可以看作一个碱基对序列.它包含了4种核苷酸,简记作A,C,G,T.生物学家正致力于寻找人类基因的功能,以利用于诊断疾病和发明药物. 在一个人类基因工作组的任务中,生物学家研究的是:两个基因的相似程度.因为这个研究对疾病的治疗有着非同寻常的作用. 题目描述 两个基因的相似度的计算方法如下: 对于两个已知基因,例如AGTGATG和GTTAG,将它们的碱基互相对应.当然,中间可以加入一些空碱基-,例如: 这样,两个基因之间的相似度就可以用碱基之间相似度的总和来描述,碱基之间的…
题目:https://www.luogu.org/problemnew/show/P1140 分析: 本题一看就知道是一道动归,其实和字串距离非常的像,只不过多了题目规定的匹配相似度罢了. 匹配的相似度我们之间用一个二维数组读入即可 int shuzu[6][6]={{0,0,0,0,0,0},{0,5,-1,-2,-1,-3},{0,-1,5,-3,-2,-4},{0,-2,-3,5,-2,-2},{0,-1,-2,-2,5,-1},{0,-3,-4,-2,-1,0}}; PS:换行效果更佳.…
每日一题 day23 打卡 Analysis dp[i][j]表示序列A中前i个与序列B中前j个匹配的相似度最大值 所以,dp方程很容易想到: 1.让a[i]与b[j]匹配 2.让a[i]与B序列中一个空位匹配 3.让b[j]与A序列中一个空位匹配 dp[i][j]=max(dp[i][j],dp[i-1][j-1]+form[a[i]][b[j]],dp[i-1][j]+form[a[i]][5],dp[i][j-1]+form[5][b[j]]); 对于初始化,就是分别让每个a[i]和每个b…
题意 : 题目链接 分析 :  可以观察到给出的配对代价表中对角线部分是正数 其余的都是负数,也就是说让相同字母的匹配的越多越好 即找出 LCS 但是这里 DP 的过程需要记录一下代价 有关 LCS 的一篇博客 ==> Click here 如果不是计算长度而是计算配对的价值,那么初始化的时候 记得将每一个串的字母作为结尾与空串配对的价值初始化一下 即 dp[i][0] 与 dp[0][i] #include<bits/stdc++.h> using namespace std; con…
貌似开坑还挺好玩的...开一个来玩玩=v=... 正好自己dp不是很熟悉,就开个坑来练练吧...先练个50题?小目标... 好像有点多啊QAQ 既然是开坑,之前写的都不要了! 50/50 1.洛谷P3399 丝绸之路 简单的线性dp 点我看题 因为是开坑所以题意就不讲了,自己看题吧,一些题意比较迷的会讲一下. 这题其实还挺简单的. 设 f[i,j] 表示到第 i 个城市用了 j 天所需要的最小疲劳值. 很快dp方程就出来了.  f[i,j]=min(f[i,j-1],f[i-1,j-1]+d[i…
今天下午要参加海淀区的比赛了...这几天临时抱佛脚刷了几道DP,正所谓临阵磨枪,不快也光...下面我 就把最近刷到的,自己觉得不错的动态规划题列出来: 1.P2690 接苹果 :(基础二维DP) 2.P1474 货币系统 Money Systems:(线性动规,DP方程也比较好想) 3.UVA12563 劲歌金曲 Jin Ge Jin Qu hao :(01背包的变式,很基础,也很经典,紫书上的题) 4.P3974 [TJOI2015]组合数学 :(之前我还写过这题的题解,天津省选的题,DAG上…
(19.6.17——19.6.22) 目前本周还没有过去所以还会更新 第0周 目前博客更新暂定于 [题目难度颜色见洛谷] 1.绿题以上绝对更新 2.黄题可能更新 3.其他估计不会有更新 准备工作 1.本周写了什么 6.18洛谷P1403 [AHOI2005]约数研究 P2858 [USACO06FEB]奶牛零食Treats for the Cows    [暂时没有更博客] 6.19 洛谷:P1140相似基因     [暂时没有更博客]P5019铺设道路 P5020货币系统 P2196挖地雷 P…
洛谷 P2615 神奇的幻方 洛谷 P2678 跳石头 洛谷 P1226 [模板]快速幂||取余运算 洛谷 P2661 信息传递 LOJ P10147 石子合并 LOJ P10148 能量项链 LOJ P10149 凸多边形的划分 LOJ P10150 括号配对 LOJ P10151 分离与合体 洛谷 P1309 瑞士轮 洛谷 P3956 棋盘 洛谷 P2196 挖地雷 LOJ P10163 Amount of Degrees LOJ P10171 牧场的安排 洛谷 P5020 货币系统 洛谷…
复习一下近期练习的入门 \(DP\) .巨佬勿喷.\(qwq\) 重新写一遍练手,加深理解. 代码已经处理,虽然很明显,但请勿未理解就贺 \(qwq\) 0X00 P1057 [NOIP2008 普及组] 传球游戏 设 \(f[i][j]\) 表示传球 \(i\) 次后传到第 \(j\) 个人的方案数. 设小蛮为 \(1\) 号,则初始化 \(f[1][n]=1\),\(f[1][2]=1\). 转移方程为 \(f[i][j]=f[i-1][j-1]+f[i-1][j+1]\) 只需特判 \(1…
使用limma.Glimma和edgeR,RNA-seq数据分析易如反掌 Charity Law1, Monther Alhamdoosh2, Shian Su3, Xueyi Dong3, Luyi Tian1, Gordon K. Smyth4 and Matthew E. Ritchie5 1The Walter and Eliza Hall Institute of Medical Research, 1G Royal Parade, Parkville, VIC 3052, Melbo…
1264: [AHOI2006]基因匹配Match 题目:传送门 简要题意: 给出两个序列.每个序列都由n种不同的数字组成,保证每个序列种每种数字都会出现5次(位置不一定一样),也就是序列长度为5*n啦. 求这两个序列的最长公共子序列. 题解: 假的(nlogn)最长公共子序列算法 本蒟蒻看完题: woc!大水题,这不是就是动态规划求最长公共子序列吗~ 看完数据范围...ORZ那么大!!!最长公共子序列的基础算法要(n^2)...完了...不会...瞎搞??? 这么皮,怎么破! tkj神犇:so…
题目背景 大家都知道,基因可以看作一个碱基对序列.它包含了44种核苷酸,简记作A,C,G,TA,C,G,T.生物学家正致力于寻找人类基因的功能,以利用于诊断疾病和发明药物. 在一个人类基因工作组的任务中,生物学家研究的是:两个基因的相似程度.因为这个研究对疾病的治疗有着非同寻常的作用. 题目描述 两个基因的相似度的计算方法如下: 对于两个已知基因,例如AGTGATGAGTGATG和GTTAGGTTAG,将它们的碱基互相对应.当然,中间可以加入一些空碱基-,例如: 这样,两个基因之间的相似度就可以…
浅谈\(DP\):https://www.cnblogs.com/AKMer/p/10437525.html 题目传送门:https://www.luogu.org/problemnew/show/P1140 以已经匹配完了的长度为阶段,\(f[i][j]\)为状态,表示已匹配了第一个串的\(i\)个,第二个串的前\(j\)个. 转移则是\(f[i][j]=max(f[i][j],f[i-1][j-1]+cost[a_i][b_j],f[i-1][j]+cost[a_i]['-'],f[i][j…
欢迎访问~原文出处——博客园-zhouzhendong 去博客园看该题解 题目传送门 - BZOJ1264 题意概括 给出两个长度为5*n的序列,每个序列中,有1~n各5个. 求其最长公共子序列长度. 题解 我们发现这题的序列特殊性是关键! 我们只需要知道每一种数字在某一个序列中的5个位置,然后对于普通的LCS问题,我们只有在a[i] = b[j]的时候才会+1. 那么我们可以维护一个树状数组,在a序列中,我们一个一个位置扫过去,每次通过树状数组维护的前缀最大值来更新,然后因为修改不多,所以维护…
题目大意:给定n个数和两个长度为n*5的序列,每一个数恰好出现5次,求两个序列的LCS n<=20000.序列长度就是10W.朴素的O(n^2)一定会超时 所以我们考虑LCS的一些性质 LCS的决策+1的条件是a[i]==b[j] 于是我们记录a序列中每一个数的5个位置 扫一下b[i] 对于每一个b[i]找到b[i]在a中的5个位置 这5个位置的每一个f[pos]值都能够被b[i]更新 于是找到f[1]到f[pos-1]的最大值+1 更新f[pos]就可以 这个用树状数组维护 时间复杂度O(nl…
复制上一题总结 caioj 1069到1071 都是最长公共字序列的拓展,我总结出了一个模型,屡试不爽    (1) 字符串下标从1开始,因为0用来表示字符为空的情况,而不是第一个字符     (2)初始化问题.         一般设f[i][j]为第一个字符前i个,第二个字符前j个的最优价值          f[0][0] = 0           然后要初始化f[i][0], f[0][i]      这个时候要根据题意.          这个时候就是一个字符有,一个字符空的情况  …
题意翻译 [题目描述] 输入两个A~Z组成的字符串(长度均不超过30),找一个最短的串,使得输入的两个串均是它的子序列(不一定连续出现).你的程序还应统计长度最短的串的个数. e.g.:ABAAXGF和AABXFGA的最优解之一为AABAAXGFGA,一共有9个解. [输入格式] 有多组数据.第一行一个整数T表示数据组数.接下来的2T行,每行一个字符串,含义如题所示. [输出格式] 共T行.第i行格式为 Case #i: x y 其中x为最短串的长度,y为最优解的个数. 题目描述 PDF 解析:…
上一篇我们已经说到了,增强学习的目的就是求解马尔可夫决策过程(MDP)的最优策略,使其在任意初始状态下,都能获得最大的Vπ值.(本文不考虑非马尔可夫环境和不完全可观测马尔可夫决策过程(POMDP)中的增强学习). 那么如何求解最优策略呢?基本的解法有三种: 动态规划法(dynamic programming methods) 蒙特卡罗方法(Monte Carlo methods) 时间差分法(temporal difference). 动态规划法是其中最基本的算法,也是理解后续算法的基础,因此本…