摘要: *题意: 给一定数量的基因片段,将这些片段可并成一条片段,输出最短片段的长度。*思路: 将不同片段两两组合,求出最短长度存在addlen[i][j]中,然后用dfs遍历addlen[i][j](即把所有片段组合成一串)保存最短片段的长度,最后输出。实际上就是枚举各种情况,当然在串成一串的过程中若发现长度已经比先前存的最短长度要长就可以舍弃,直接进入下一种情况#include#include#includeusing namespace std;char gene[11][111];int addlen[11][11],len[11],sign[11];int n,t,ans;void ad.. 阅读全文
posted @ 2013-08-29 16:02 Neptunes 阅读(217) 评论(0) 推荐(0) 编辑
摘要: *介绍: KMP算法是在给定的一串字符串中查找是否有目标串。*分析:1、一般解法 对于以上问题,假如用朴素算法,我们容易想到:用目标串(长度为n)的第1个字符依次与给定串(长度为m)的第1个至最后一个字符对齐匹配,直到找到目标串为止。这样算法复杂度是m*n。2、KMP算法:思路分析: KMP算法通过建立一个数组(一般命名为next)来记录目标串的自身特征从而简化匹配过程,令算法的复杂度降至m+n。 举例,假设目标串为: a b c a b c d d e a 对应next数组的值为: 0 0 0 1 2 3 0 0 0 1 通过观察我们会发现next数组记录的是以当前字... 阅读全文
posted @ 2013-08-29 15:51 Neptunes 阅读(212) 评论(0) 推荐(0) 编辑