后缀数组
three trees
三木无林,却以成森
展开
-
hdu 5558 Alice's Classified Message 后缀数组
分析 对于suffix[i]suffix[i]suffix[i]在[0,i−1][0,i-1][0,i−1]找一个后缀suffix[j]suffix[j]suffix[j]使最长公共前缀最大,且j最小 如果没有这样的后缀,输出−1-1−1和当前位置字符的ASCIIASCIIASCII码 如果有,输出最长公共前缀的大小和j 然后令i=i+ki=i+k\quadi=i+k(没有的话加一) 我们可以用后...原创 2019-11-12 15:47:04 · 107 阅读 · 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 评论 -
2019 ccpc 网络赛——hdu-6704-K-th occurrence--后缀数组+主席树
先贴个代码 /*后缀数组+主席树*/ #include <bits/stdc++.h> using namespace std; typedef long long ll; typedef unsigned long long ull; const int N = 1e5 + 100; struct node//静态主席树节点 { int l, r, val; }T[N * ...原创 2019-09-06 21:57:58 · 196 阅读 · 0 评论