使用KMP寻找最长的前缀的方法,比一般的暴力法有快了很多。
本题一般的暴力法需要的是O(m*n*n*n),其中m是有多少字符串,而n是字符串长度,而使用KMP就可以把时间效率提高到O(m*n*n),减少了一个n,提高了一个档次啦。
速度快很多。
准确来说应该是利用KMP寻找一个字符串A,在另一个字符串B任意位置出现的A的最长的前缀字符串。
理解好KMP的next table就好办了。每次查找到相等字符的时候,保存好最长的前缀。
注意本题的条件:选取最前的字典顺序输出。老害我错的条件。...
分类:
其他好文 时间:
2014-08-11 12:01:02
阅读次数:
250
题目大意:问至少添加几个字符才能保证这个字符串是个回文串一开始想也想不到字符串匹配上,因为是找回文串,我们可以把已给字符串逆向得到一个新的字符串,然后比较两者得到最大匹配长度,最后总长度减去最大匹配长度就是所要求的值 1 #include 2 #include 3 #include 4 #in...
分类:
其他好文 时间:
2014-08-10 15:34:40
阅读次数:
190
1.程序执行修改窗口字体颜色命令;2.程序执行修改窗口标题命令;3.程序执行关机倒计时命令;4.根据提示输入团队名称JYHACK TEAM 根据提示输入团队网址:http://bbs.jyhack.com5.如果输入正确,则取消关机命令,并打开某一网页。 如果输入错误,那就等着关机吧。ps:当然对于...
分类:
编程语言 时间:
2014-08-10 12:55:40
阅读次数:
272
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3374题目大意:输出最大和最小的是从哪一位开始的,同时输出最小循环节的个数。这里简单介绍对字符串最小表示的方法:(1) 利用两个指针p1, p2。初始化时p1指向s[0], p2指向s[1]。(2) k ...
分类:
其他好文 时间:
2014-08-10 12:52:50
阅读次数:
244
一周总结状态压缩:状态压缩无论是有关于图的遍历的还是图形和物体的放置的,都可归结于一类问题,那就是排列问题即先算谁的问题。如:hdu4295题意说将4个子串放入一个主串中,使得覆盖的字符数最大和最小。此题先预处理每个子串可在主串中放的位置pos[i][j]以kmp字符串匹配算法...
分类:
其他好文 时间:
2014-08-10 10:19:00
阅读次数:
205
http://poj.org/problem?id=3461
先来一发KMP算法:
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;
#define ls(rt) rt*2
#define rs(rt) rt*2+1
#def...
分类:
其他好文 时间:
2014-08-09 21:29:29
阅读次数:
278
题意 给你n个DNA串 求它们的长度最大的公共子串 如果有多个 输出字典序最小的 长度小于3的不算
每个DNA串的长度都是60 可以从子串长度为60依次递减 并枚举所有该长度子串 当某个长度的子串也为其它n-1个串的子串时 就是我们要的答案了
判断是否为其它DNA串的子串直接kmp就行了...
分类:
其他好文 时间:
2014-08-09 18:48:08
阅读次数:
302
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2594
这题直接用KMP算法就可以做出来,不过我还尝试了用扩展的kmp,这题用扩展的KMP效率没那么高。
KMP算法:...
分类:
其他好文 时间:
2014-08-09 18:47:48
阅读次数:
221
对文本数据进行操作是JavaScript中常见的任务。正则表达式通过允许程序员指定字符串匹配的模式来简化诸如验证表单中输入是否具有正确格式之类的任务。
1.正则表达式标记:
字符
含义
举例
i
大小写不敏感
对于模式/http/i “http” 和“HttP” 一样可以匹配...
分类:
编程语言 时间:
2014-08-09 00:20:46
阅读次数:
239