题目大意:求字符串的前缀是否为周期串,若是,打印出循环节的长度以及循环次数。 这道题考察的是KMP算法中next数组的应用,必须理解透next[]数组代表的含义才t能通过它解决这道题。思路是先构造出 next[] 数组,下标为 i,定义一个变量 t = i - next[i] 就是next数组下标和 ...
分类:
其他好文 时间:
2019-01-27 10:52:33
阅读次数:
177
假设我们面临这样一个问题:有一个文本串S,和一个模式串P,现在要查找P在S中的位置,怎么查找呢? 如果用暴力匹配 的思路 ,并假设现在文本串S匹配到i位置,模式串P匹配到j位置,则有: ?如果当前字符匹配成功(即S[i]==P[j]) 如果S[5]和P[1]匹配成功,继续执行第一条 匹配失败;j=n ...
分类:
其他好文 时间:
2019-01-27 10:47:48
阅读次数:
181
给出一个只由小写英文字符a,b,c...y,z组成的字符串S,求S中最长回文串的长度. 回文就是正反读都是一样的字符串,如aba, abba等 Input输入有多组case,不超过120组,每组输入为一行小写英文字符a,b,c...y,z组成的字符串S 两组case之间由空行隔开(该空行不用处理) ...
分类:
其他好文 时间:
2019-01-27 01:07:39
阅读次数:
225
自适应AC自动机! 其实就是重载运算符。 感觉别人写的自动机下标之间太多累赘的东西,不如重载运算符。方便编写。 实际上AC自动机就是字典树加上$kmp$算法的精髓,可以对于一个文本串快速匹配多个模式串。时间复杂度$O(\Sigma n+m)$。 cpp include define RP(t,a,b ...
分类:
其他好文 时间:
2019-01-26 17:53:40
阅读次数:
181
? 第二章,几个简单的程序 ● 代码,单线程 ● 输出结果 ● 单核心两线程的 OpenMP ● 输出结果 ● 线程数、线程亲缘性调整 ● 输出结果 ● 代码,带宽测试 ● 输出结果 ● 代码,offload 模式 ● 编译时找不到动态库,调整 /etc/ld.so.conf 解决掉其中一个(lib ...
分类:
其他好文 时间:
2019-01-26 17:16:12
阅读次数:
171
给定字符串S和子串T。 定义n=|s|,m=|T|,extend[i]=S[i~n]与T的最长公公前缀长度。请在线性时间内求出所有的extend。 这道题继承上面KMP的思路,我们可以对T的每一个前缀做一次KMP,如果在某个i位置出现,就拿此时前缀长度更新i的extend数组。但是这样复杂度就是O( ...
分类:
其他好文 时间:
2019-01-26 17:13:30
阅读次数:
191
Give you a string with length N, you can generate N strings by left shifts. For example let consider the string “SKYLONG”, we can generate seven strin ...
分类:
其他好文 时间:
2019-01-25 22:52:09
阅读次数:
161
什么是KMP算法: KMP算法是一种改进的字符串匹配算法,由D.E.Knuth,J.H.Morris和V.R.Pratt同时发现,因此人们称它为克努特——莫里斯——普拉特操作(简称KMP算法)。KMP算法的关键是利用匹配失败后的信息,尽量减少模式串与主串的匹配次数以达到快速匹配的目的。具体实现就是实 ...
分类:
编程语言 时间:
2019-01-24 01:17:15
阅读次数:
220
字符串虐哭空巢老人记 BY:去不了冬令营的徐叔叔 本文共分三个部分:算法粗略介绍和模板、奇妙性质及其应用、优秀题目选讲 算法模板 1.(树)哈希 怎么乱怎么来,越乱越好。 2.kmp 求最长border ...
分类:
其他好文 时间:
2019-01-23 23:20:09
阅读次数:
152
You are given a number of case-sensitive strings of alphabetic characters, find the largest string X, such that either X, or its inverse can be found ...
分类:
其他好文 时间:
2019-01-21 17:51:19
阅读次数:
197