【内容】后缀数组
步六孤明琪
这个作者很懒,什么都没留下…
展开
-
【NOI2016】【BZOJ4650】【UOJ219】【LOJ2083】优秀的拆分
【题目链接】 BZOJ4650 UOJ219 LOJ2083 【前置技能】 后缀数组 【题解】 首先,我们将优秀的拆分拆成一半来看,令a[pos]a[pos]a[pos]表示从pospospos开始的AAAAAA串的个数,令b[pos]b[pos]b[pos]表示以pospospos结尾的AAAAAA串的个数,那么答案就是∑LEN−1i=1a[i+1]∗b[i]∑i=1LEN−...原创 2018-07-24 09:04:56 · 199 阅读 · 0 评论 -
【BZOJ2865】字符串识别
【题目链接】 BZOJ2865(权限题) 【前置技能】 线段树 后缀数组 【题解】 先考虑另一个问题:给出一个字符串SSS,要求求出某一位后缀的最长前缀,使得这个子串在SSS中仅出现一次。这个问题用后缀数组就可以轻松解决,答案就是max(height[rank[i]],height[rank[i]−1])+1max(height[rank[i]],height[rank[i]−...原创 2018-07-19 15:58:00 · 406 阅读 · 0 评论 -
【NOI2015】【BZOJ4199】【UOJ131】【LOJ2133】品酒大会
【题目链接】 BZOJ4199 UOJ131 LOJ2133 【前置技能1】 后缀数组 并查集 【题解1】 首先有一件题目描述中提到的事实:两杯“ r 相似”(r > 1)的酒同时也是“ 1 相似”、“ 2 相似”、……、“ (r − 1) 相似”的,即如果一些后缀是至少xxx相似的,一些后缀是至少yyy相似的,两个集合之间最大的相似度为z(x≥z,y≥z)z(x\geq z, y...原创 2018-11-16 08:11:09 · 159 阅读 · 0 评论 -
【JSOI2007】【BZOJ1031】字符加密Cipher
【题目链接】 BZOJ1031 【前置技能】 后缀数组 【题解】 把原字符串复制倍长,进行后缀排序,然后按照要求输出即可。 【代码】 #include<bits/stdc++.h> #define INF 0x3f3f3f3f #define LL long long #define MAXN 200010 using namespace std; char s[M...原创 2018-11-21 19:47:06 · 188 阅读 · 0 评论