字符串
three trees
三木无林,却以成森
展开
-
manacher ——学习
回文串 形如aaa,aa,aba之类的就是回文串,字符串关于某个位置中心对称。反之,abcd不为回文串 对于字符串str,现有个O(n)范围求出以每个位置为中心的最长回文半径——manacher manacher 正常的求每个位置的最长回文半径,我们用暴力,复杂度是O(n2n^{2}n2),但是我们发现,在前面求出的半径可以拿来使用求后面的半径,从而减少一定时间。 先贴个代码,图后补 #inclu...原创 2019-09-10 20:42:37 · 84 阅读 · 0 评论 -
PAM-回文自动机-模板
贴个板子 #include <bits/stdc++.h> using namespace std; typedef long long ll; typedef unsigned long long ull; const int N = 5e5 + 5; struct PAM_node//回文树上节点 { int vis[26]; int fail, len, num;...原创 2019-09-11 20:59:49 · 180 阅读 · 0 评论 -
后缀数组-学习
## 后缀数组(suffix array) 求的是每个后缀的排名,我们可以使用倍增法跟DC3,前者时间复杂度O(nlogn),后者O(n) 本文只考虑倍增法 然后我们定义了一些数组 sa[i]: 排名为i的后缀的位置 tp[i]: 第二关键字,性质同sa[i] rak[i]: 第i个后缀的排名 tax[i]: 排序是需要用到的桶(基数排序) 排序部分 void Qsort() { for(...原创 2019-08-28 21:47:26 · 94 阅读 · 0 评论 -
hdu 6599 I Love Palindrome String hash+PAM
题意 给一个字符串,让我们找每个长度的子串中,是super串的个数。(类似双倍回文) 分析 我们对原串建立一个PAM,这样我们可以统计每种回文串出现次数,在用hash判断是不是super串 最后在统计一下就ok #include <bits/stdc++.h> using namespace std; typedef long long ll; typedef unsigned lon...原创 2019-09-13 14:44:17 · 120 阅读 · 0 评论