题目大意
给定DNA序列长度m和一个DNA(每单位DNA有AGCT 4种可能)片段,求所有和所给序列最长公共子串长度为0~len的DNA数量
解题思路
在开题的时候以为是数论+组合数学,思路越想越偏……
后来CLJ给出超简要的题解……
听别人的一种按位压缩的思路,就是枚举到该位置之时LCS所对应的位置,若一一对应则该位为1,否则为0
而当我们要处理新的单位DNA时就有一个变换LCS对应的会改变。
则我们枚举所有可能的匹配位置并枚举下一位,算出下一个状态对应的LCS所在位置,按位压缩。...
分类:
其他好文 时间:
2014-08-03 18:10:05
阅读次数:
224
简单的DP。f[i][j]表示序列a中前i个中,序列b中前b个中,组成的最长公共子序列的长度。DP方程:if(a[i-1]==b[j-1]) f[i][j]=f[i-1][j-1]+1; else f[i][j]=max(f[i-1][j],f[i][j-1]);(我这个a下标是从0开始,f是从1开...
分类:
其他好文 时间:
2014-08-01 18:46:32
阅读次数:
209
DP题目 求LCS主要是要保存打印路径 1 #include 2 #include 3 #include 4 #include 5 using namespace std; 6 char s1[105][35],s2[105][35],s[105][35]; 7 int mark[105][...
分类:
其他好文 时间:
2014-08-01 18:44:22
阅读次数:
229
public static String lcs(String a, String b){ int aLen = a.length(); int bLen = b.length(); if(aLen==0 || bLen==0) return ""; if(a.char...
分类:
其他好文 时间:
2014-07-22 22:49:15
阅读次数:
194
要死了,这个题竟然做了两天……各种奇葩的错误……HNU的12831也是这个题。题意: 给你两个等差数列,求这两个数列的公共元素的数量。 每个数列按照以下格式给出: N F D(分别表示每个数列的长度,首项,公差)。思路: 先用扩展欧几里得得到两个数列的一个交点,然后求出两个数列的第一个交点。然...
分类:
其他好文 时间:
2014-07-22 22:42:13
阅读次数:
209
给两个等差数列的长度,起点和数列的增加值,求两个数列中有几个数相同...
分类:
其他好文 时间:
2014-07-20 22:23:02
阅读次数:
172
今天想学点动态规划的知识,于是就看了杭电的课件,数塔问题啊,LCS啊都是比较经典的动规了,然后随便看了看就开始做课后练习题。。。HDOJ 1421 搬寝室http://acm.hdu.edu.cn/showproblem.php?pid=1421题目大意:从n(n 2 #include 3 #in....
分类:
其他好文 时间:
2014-07-19 15:11:48
阅读次数:
299
最长公共子序列(LCS) 代码(C)本文地址:http://blog.csdn.net/caroline_wendy题目: 给定两个字符串s,t, 求出这两个字符串最长的公共子序列的长度. 字符串的子序列并一定要连续, 能够包含间隔.即最长公共子序列问题(LCS, Longest Common Su...
分类:
其他好文 时间:
2014-07-19 09:07:09
阅读次数:
193
最长公共子序列问题LCS问题描述参考解答动态规划算法可有效地解此问题。下面我们按照动态规划算法设计的各个步骤来设计一个解此问题的有效算法。1.最长公共子序列的结构解最长公共子序列问题时最容易想到的算法是穷举搜索法,即对X的每一个子序列,检查它是否也是Y的子序列,从而确定它是否为X和Y的公共子序列,并...
分类:
其他好文 时间:
2014-07-16 18:01:53
阅读次数:
280