ACM.字符串
文章平均质量分 56
slowlight93
这个作者很懒,什么都没留下…
展开
-
hdu 2222 Keywords Search(AC自动机)
AC自动机练手题。注意题意,keyword可能重复,这些重复的keyword要单独计算。 PS:升级了AC自动机模板 O(∩_∩)O~ 感觉更和谐了原创 2014-12-09 20:24:15 · 447 阅读 · 0 评论 -
hdu 2846 Repository(Trie)
Trie练手题。 算了下,静态分配内存貌似会MLE?不过看别人的代码开 2e6 * 26 的数组竟然过了? = = 嘛,写了个动态的。。 #include #include #include #include #include #include #include #include #include #include #include #include using na原创 2014-12-09 23:48:58 · 474 阅读 · 0 评论 -
scu 4438 censor(KMP,栈保存匹配状态)
题意: 重复,在t的起始找第一次出现的w,从t中删掉。 求最后的t。 思路: T: 文本 , W: 关键词 KMP过程中T中每个位置都对应了一个W的失配函数值。 我们可以把任何一个状态拿出来,然后继续匹配下去。 匹配过程中把这些pair压入stack。 删除:弹出连续|W|个状态,于是状态回到|W|个字符前,继续与剩下的T进行匹配const int Mxn = 5e6 + 5; ch原创 2015-06-15 15:52:44 · 829 阅读 · 2 评论 -
hdu 4622 Reincarnation(后缀自动机,入门级)
题意: 求字符串任意字串的不同字串数。 思路: 用后缀自动机可以做到 O(n2)O(n^2)预处理,O(1)O(1)回答查询。 不过我的代码跑了 1000+ms 别人的代码可以跑到 100ms-200ms。。 VJ的记录#include <iostream> #include <cstdio> #include <algorithm> #include <cstring> #includ原创 2015-08-09 14:46:17 · 537 阅读 · 0 评论 -
【算法笔记】Aho-Corasick 算法(AC自动机) 小结
参考: 《训练指南》 http://codeforces.com/blog/entry/14854这个改进《训练指南》中说过, 本文的目的是总结并实现一个自用的模板。。 AC自动机每个节点有一个 fail 指针, 作用与KMP中相同。 假如我们的节点是这样的// link 就是 fail指针 struct Node { Node *go[CharSet], *link; in原创 2015-08-10 21:18:12 · 593 阅读 · 0 评论 -
hdu 5442 Favorite Donut (最小表示法 or 后缀数组)
题意: 给一个字符串,正向找一遍循环最小,逆向找一遍循环最小。 然后把两个最小根据下标关系,取一个答案。。 思路: 这道题用 后缀数组 很好解决。 但是,还有个更适合的方法,最小表示法算法。 最小表示法 - 周源 PPT这是一个非常简洁的 O(n)O(n) 算法,可以求一个字符串的最小 or 最大表示。int maxPresent(const char s[], int len) {原创 2015-09-15 00:26:09 · 629 阅读 · 0 评论