后缀数组
文章平均质量分 59
ws_yzy
一如OI情似海
展开
-
2946: [Poi2000]公共串|哈希|后缀数组
据说是后缀自动机裸题然而,我还没有熟练掌握CE自动机,TLE自动机,RE自动机并没有达到学习后缀自动机条件…………后缀数组 :二分答案,给height数组分组暴力判断复杂度(nlogn)36ms#include#include#include#include#include#include#include#include#include#include#原创 2016-01-18 20:44:57 · 633 阅读 · 0 评论 -
1640: [Usaco2007 Nov]Best Cow Line 队列变换|后缀数组|贪心
做完1692发现还有弱化版本1640 打板子刷水题大法好,骗访问量大法好#include<algorithm>#include<iostream>#include<cstdlib>#include<cstring>#include<vector>#include<cstdio>#include<queue>#include<cmath>#include<set>#include原创 2016-03-23 07:55:23 · 1024 阅读 · 0 评论 -
1692: [Usaco2007 Dec]队列变换|后缀数组|贪心
将字符串翻转后接到原串的后面,中间加一个分隔符,每次都贪心选择$rank$小的那个其实就是练习一发后缀数组的模板```#include<algorithm>#include<iostream>#include<cstdlib>#include<cstring>#include<vector>#include<cstdio>#include<queue>#include<cmath>#includ原创 2016-03-23 07:38:11 · 1037 阅读 · 0 评论 -
BZOJ 4278: [ONTAK2015]Tasowanie|后缀数组|贪心
先立flag:这题O(n)的贪心能写! 感觉细节太多(或者我想的太乱.. 然后另谋出路发现求出sa来就是sb题一道 二路归并那个后缀rank小先放哪个! 这题终于让我直观体验到了两个串和在一起中间不加分隔符的后果:样例都过不了..一刻赛艇 .. 然后为什么我的sa跑的这么慢..迷之速度,坐稳了最后一页(不过发现似乎po姐跑的比我还慢2333333 ps:实测输出优化大约能快100ms(对原创 2016-02-15 10:52:53 · 666 阅读 · 0 评论 -
BZOJ 2251: [2010Beijing Wc]外星联络|后缀数组
后缀数组求出height数组然后扫一边暴力统计出解就可以了#include#include#include#include#include#include#include#include#include#include#define T 3333using namespace std;char s[T];int t1[T],t2[T],cc[T],rank[T原创 2016-01-12 15:30:32 · 599 阅读 · 0 评论 -
BZOJ 3172: [Tjoi2013]单词|后缀数组
这个ac自动机做法貌似很显然然而我用的后缀数组(专业制造麻烦……其实就是为了练后缀数组)这题二分答案会有很多坑爹的地方原因就是这height数组存的是suffix(sa[i])和suffix(sa[i-1])的LCP二分答案的时候要注意不过貌似直接暴力找也挺快 orz ws_fqk 暴力虐二分……#include#include#include#include原创 2016-01-11 09:35:17 · 557 阅读 · 0 评论 -
[Noi2015]品酒大会|后缀数组|并查集
后缀数组+并查集先求出height数组 然后排序并查集维护 size max min从大到小枚举height 若当前以x开头的后缀和以y开头的后缀的lcp为kp为x的并查集的根,q为y的并查集的根则k相似的的个数 加上size[p]*size[q]最大值更新 max{mx[p]*mx[q],mn[p]*mn[q],mx[p]*mn[q],mn[p]*mn[q]}#i原创 2016-01-11 20:21:54 · 1002 阅读 · 0 评论 -
Poj 1743Musical Theme|后缀数组|二分答案
首先差分一下话说为什么我花了好久才弄懂题意,然后才知道为什么差分……然后就是二分答案,给height分组judge1A赞(调了一早晨的sb错误)#include#include#include#include#include#include#include#include#include#include#define T 511111using namespa原创 2016-01-11 07:02:22 · 531 阅读 · 0 评论 -
BZOJ 3238: [Ahoi2013]差异|后缀数组|乘法原理
后缀数组貌似不是这个题正确的姿势不过也可以做自己yy的做法 用set水过了不过看起来并不是很慢原题中的式子等价于所有后缀的长度之和*[length(s)-1] 减去 任意两个后缀的lcp长度任意两个后缀的lcp长度可以直接光看height数组先想n^2暴力的做法求出所有sa[i]和sa[j](i然后sa[i]和sa[j]的lcp长度=min{heigh[i+1]原创 2016-01-10 20:17:52 · 540 阅读 · 0 评论 -
Uoj#35. 后缀排序
#include#include#include#include#include#include#include#include#include#include#define T 222222using namespace std;char s[T];int t1[T],t2[T],cc[T],sa[T],rank[T],height[T];int len;bool原创 2016-01-10 16:48:37 · 602 阅读 · 0 评论 -
Poj 3693 Maximum repetition substring|后缀数组|st表
这一定是我做的最恶心的一道后缀数组的题简直恶心哭了具体做法可以参见罗穗骞的论文说一下字典序最小怎么找:找出所有重复最多的子串长度枚举sa数组最先找到的那个满足条件的 就是字典序最小的ps:1,st表查询的时候 左边的rank要加1!#include#include#include#include#include#include#include#incl原创 2016-01-10 16:22:52 · 498 阅读 · 0 评论 -
Poj 2774 Long Long Message|后缀数组
后缀数组裸题两串合并中间加一个‘$'然后求height数组然后求排名相邻 但原来不在同一个字符串中的两个后缀的height值的最大值#include#include#include#include#include#include#include#include#include#include#define T 555555using namespace s原创 2016-01-10 10:36:31 · 426 阅读 · 0 评论 -
tyvj 1860后缀数组
模板题超时!!卡常神题!!!ps :输出优化 要不40w输出会tle#include#include#include#include#include#include#include#include#include#include#define T 222222using namespace std;char s[T];int t1[T],t2[T],cc[T]原创 2016-01-10 08:50:25 · 565 阅读 · 0 评论 -
后缀数组模板
2016.1.10重新回味了一下后缀数组,还是太弱了……描述一下代码中的个数组cc数组 计数排序用x[I] 表示 以i开头的后缀按第一关键字排序的排名y[I] 表示 按第二关键字排序的排名为i的后缀开始的下标height[I] 表示 suffix(sa[i])和 suffix(sa[i-1]) 的LCP rank[i] 表示suffix(i) 的排名#inclu原创 2015-08-21 18:28:07 · 2382 阅读 · 0 评论 -
4516: [Sdoi2016]生成魔咒|后缀数组|线段树|ST表
将原串倒过来,每次添加一个字符相当于增加一个后缀。 问题转化为向集合中动态添加后缀求本质不同的字串的个数,离线求出SASA 找出当前添加的串与集合中的串的最大的LCPLCP,就是重复出现的子串的个数,线段树维护集合中rank的前驱和后继, 考场上的原代码(SDOI唯一A掉的一道题QAQ)#include<algorithm>#include<iostream>#include<cstdli原创 2016-04-15 08:22:43 · 1429 阅读 · 1 评论