后缀自动机
文章平均质量分 79
yysys
yysys
展开
-
【后缀自动机】 HDOJ 4436 str2int
一眼后缀数组,但是本弱想不出huo原创 2014-08-13 13:46:47 · 706 阅读 · 0 评论 -
【后缀自动机】 BZOJ 3998: [TJOI2015]弦论
建立好后缀自动机后,分别讨论一下是要求重复子串还是不重复子串。。。#include using namespace std;typedef long long LL;const int alpha = 26;const int maxn = 1000005;struct node{ int len; LL cnt, size; node *fa, *ch[a原创 2015-08-07 13:37:44 · 20489 阅读 · 0 评论 -
【后缀自动机】 BZOJ 3926 ZJOI2015 诸神眷顾的幻想乡
好神的题。。。。#include using namespace std;typedef long long LL; const int alpha = 26;const int maxn = 4000005;const int maxm = 200005; struct node{ int len; node *ch[alpha], *fa;}pool[m原创 2015-08-16 19:57:21 · 1115 阅读 · 0 评论 -
【后缀自动机】 CodeForces 235C Cyclical Quest
先对原串建立后缀自动机。考虑每个询问。询问的子串相当于考虑它的n个循环串,因此我们把询问串连接在询问串,那么这个新串的长度为n的子串就是所要求的串。把新串放在后缀自动机上面跑,同时记录现在新串匹配的最长后缀len。如果len>=当前串长度n,那么我们就沿着fa指针跳到满足len>=n且长度最小的节点。那么原点到这个节点必然有一条路径的字符串是当前匹配的长度为n的后缀。这个节点的right集合大小就原创 2015-06-27 13:33:34 · 816 阅读 · 0 评论 -
【后缀自动机】Codeforces Round #305 (Div. 1) E. Mike and Friends
对所有的串加特殊字符隔开,单串建立后缀自动机。然后将每个的fa边反向建树,对树dfs得到dfs序,对dfs序建立线段树。询问离线,每个询问拆成1-(l-1)和1-r。。。按端点排序,然后每次加入线段树,查询k对应的节点的子树和。。。#include #include #include #include #include #include #include #include #i原创 2015-05-29 13:44:48 · 731 阅读 · 0 评论 -
【后缀自动机】 HDOJ 4270 Dynamic Lover
给出一个初始串,三种操作:1.在这个字符串后面加个字符串。2.给出一个长度len,问当前串长度为len的所有子串和长度小于len的所有后缀中字典序最小的起始坐标。3.删除当前字符串后面len个字符。#include #include #include #include #include #include #include #include #include原创 2015-03-05 14:20:47 · 736 阅读 · 0 评论 -
【后缀自动机】 SPOJ SUBLEX
这题也是CLJ论文上的题目,做法CLJ论文讲了。。。这里不多说了。。。。#include #include #include #include #include #include #include #include #include #include #include #include #include #define maxn 200005#def原创 2015-03-04 19:08:57 · 493 阅读 · 0 评论 -
【后缀自动机】 BZOJ 2555 SubString
在当前字符串的后面插入一个字符串询问字符串s在当前字符串中出现了几次?(作为连续子串)必须在线支持这些操作。只要维护后缀自动机上每一个节点的right集合大小就可以了。。。#include #include #include #include #include #include #include #include #include #include原创 2015-03-04 15:50:42 · 618 阅读 · 0 评论 -
【后缀自动机】 SPOJ NSUBSTR
CLJ论文上有讲这题。。。子串出现的次数就是节点的right集合的大小。。。。#include #include #include #include #include #include #include #include #include #include #include #include #include #define maxn 500005#原创 2015-03-04 14:13:05 · 399 阅读 · 0 评论 -
【后缀自动机】 SPOJ LCS2
解法CLJ论文上有讲。。。#include #include #include #include #include #include #include #include #include #include #include #include #include #define maxn 200005#define maxm 100005#define原创 2015-03-03 20:46:53 · 422 阅读 · 0 评论 -
【后缀自动机】 SPOJ LCS
将A建立成后缀自动机,后缀自动机的任意一个节点都表示若干个A的字串,让B在后缀自动机上匹配,不能匹配就沿着fa指针转移。。。#include #include #include #include #include #include #include #include #include #include #include #include #include原创 2015-02-26 18:17:23 · 440 阅读 · 0 评论 -
【字符串最小表示法】 POJ 1509 Glass Beads
这题可用后缀自动ji原创 2014-10-10 21:13:18 · 423 阅读 · 0 评论 -
【后缀自动机】 HDOJ 5431 AB String
在sam上做dp统计有多少的串不是a的子串,然后找到长度,dfs找串就行了。。#include using namespace std;typedef long long LL;const int alpha = 2;const int maxn = 40005;const int maxm = 25;struct node{ int len; LL cnt[maxm];原创 2015-09-06 16:20:28 · 379 阅读 · 0 评论