kmp
wangqianqianya
这个作者很懒,什么都没留下…
展开
-
KMP与扩展KMP算法
字符串的特征向量next[]:第i(0开始计数)个元素表示从第一个字符到第i个字符首尾最多匹配多少个字符. 注意这里是数目,与KMPNext是下标不同。 注意是子串匹配 例如:字符串abcdaabcab的特征向量是(0,0,0,0,1,1,2,3,1,2) 对于每个字符,暴力比较耗时。可看出每个字符的特征值可以由它之前的字符推出:用next[i]表示到第i个字符首尾匹配的字符数。则对于字符i...原创 2019-04-15 22:52:55 · 1389 阅读 · 0 评论 -
2019 Multi-University Training Contest 5
hdu6625:three arrays theme:给定两个长度为n的数组A与B现在要你重排这两个数组中元素的顺序,使得按C[i]=A[i]^B[i]构造出的数组C的字典序最小。 solution:贪心+字典树。由于是两个数组,所以用两颗字典序分别存数组A与数组B。由于每个元素只能选一次,所以分别用num数组记录两颗字典树中每个节点的访问次数。要构造字典序最小,我们可以同时从高位到低位遍历这...原创 2019-08-06 21:06:29 · 86 阅读 · 0 评论 -
Codeforces Round #578 (Div. 2)
E. Compress Words theme:给定n个仅由大小写字母与数字组成的字符串文本,现要合并这n个字符串为一个串,从左到右依次合并,对于第i个字符串,去掉它与已合并字符串的后缀的最长公共前缀,加上剩下部分。求合并后的字符串。1≤n≤10^5,字符串长度之和<=1e6. solution:首先答案ans一定包含第一个单词,之后对于每个单词now,要找到它与当前ans后缀的最长前缀...原创 2019-08-12 11:02:09 · 95 阅读 · 0 评论