题目来源:HDU 3613 Best Reward题意:每一个字母相应一个权值 将给你的字符串分成两部分 假设一部分是回文 这部分的值就是每一个字母的权值之和 求一种分法使得2部分的和最大思路:考虑扩展KMP 输出a串 得到a的反串b 求出f[0]和f[1] 和 extend[0]和extend[1...
分类:
其他好文 时间:
2014-09-11 13:44:31
阅读次数:
186
链接:http://poj.org/problem?id=1699
题意:给出n个字符串,求他们相连的最小长度,如果首尾字母相同则可以共用相同部分,比如两个串ABCDEF和DEFGHI,他们相连为ABCDEFGHI,最小长度为9,中间的DEF部分共用了。
思路:由于数据量较小,首先对每两个字符串a,b用扩展KMP求出a连在b之后可以共用的长度,用数组B[i][j]表示第j个字符串连接在...
分类:
其他好文 时间:
2014-09-11 02:19:21
阅读次数:
210
hdu 4300 Clairewd’s message(详解,扩展KMP)...
分类:
其他好文 时间:
2014-09-01 09:21:19
阅读次数:
326
KMP KMP算法主要用于字符串匹配中的单串匹配 next函数:表示当前字符失配时,应从模式串的第几位开始匹配(越大越好)。即模式串的前缀与以t[i]为结尾的后缀的最长相同部分的长度。 代码如下(pascal) var s,t:string; next,ans:array[0..100] of lo...
分类:
其他好文 时间:
2014-08-17 12:55:12
阅读次数:
234
hdu 4300 Clairewd’s message(详解,扩展KMP)...
分类:
其他好文 时间:
2014-08-15 16:01:39
阅读次数:
274
简介字符串的处理几乎无处不在,常用的字符串算法有KMP、扩展KMP、Trie树、AC自动机、Manacher、哈希、SA、SAM等。Knuth-Morris-Pratt 算法给你两个字符串AB,询问B串是否是A串的子串(A串是否包含B串)。可以枚举从A串的什么位置起开始与B匹配,然后验证是否匹配。假...
分类:
其他好文 时间:
2014-08-13 12:52:06
阅读次数:
291
扩展KMP牵涉了一些相对运动的姿势,比较费解!本学渣看了一天的扩展KMP,打算写点东西。。。本文看后,出现的后果本人一概不负责。毕竟我不是很会表达。扩展KMP是搞什么灰机的?本学渣所知道的扩展KMP是来解集训篇那道字符串题的。有了犯罪动机,现在就要下手。不要以为扩展KMP就以为与KMP关系暧昧。屁大...
分类:
其他好文 时间:
2014-07-29 21:37:32
阅读次数:
289
题目来源:HDU 3613 Best Reward
题意:每个字母对应一个权值 将给你的字符串分成两部分 如果一部分是回文 这部分的值就是每个字母的权值之和 求一种分法使得2部分的和最大
思路:考虑扩展KMP 输出a串 得到a的反串b 求出f[0]和f[1] 和 extend[0]和extend[1] 正反求2次
枚举位置i 分成2部分0到i-1 和i到n-1 因为分成的2部分必须组成原字符...
分类:
其他好文 时间:
2014-07-24 17:45:32
阅读次数:
271
经典扩展kmp。 1 #include 2 #include 3 #include 4 using namespace std; 5 6 void getA (char *T,int *A){ 7 int j=0; 8 int len=strlen (T); 9 wh...
分类:
其他好文 时间:
2014-07-21 14:34:49
阅读次数:
204
今天是字符串填坑的一天,首先填的第一个坑是扩展KMP。总结一下KMP和扩展KMP的区别。在这里s是主串,t是模式串。KMP可以求出的是以s[i]为结尾的串和 t前缀匹配的最长的长度。假如这个长度是L的话,则:s[i-L+1...i]=t[0...L]而所谓的失配指针f[i]指的就是当前i点失配时要匹...
分类:
其他好文 时间:
2014-07-18 16:25:23
阅读次数:
272