后缀自动机
r_clover
这个作者很懒,什么都没留下…
展开
-
UVA 719(后缀自动机/最小表示法)
(http://acm.hust.edu.cn/vjudge/contest/view.action?cid=105904#problem/A)题意:给定字符串s,问s循环后的最小串。即s为“BBACD”,答案为“ACDBB”。 解法:最小表示法直接就能解,为了写板子,又用后缀自动机写了一遍。 最小表示法:#include <cstdio>#include <cstring>#include原创 2016-03-02 17:31:47 · 654 阅读 · 0 评论 -
HDU 4622(后缀自动机)
(http://acm.hust.edu.cn/vjudge/contest/view.action?cid=105904#problem/B) 题意:串s,|s|<=2000,Q组查询,查询s(l,r)中有多少不想同子串。 解法:O(n^2)做法。分别从0~len-1为起点作后缀自动机。因为后缀自动机是支持 增 量的。每次加入一个点np,step[np] - step[pre[np]]即为增原创 2016-03-02 17:38:47 · 442 阅读 · 0 评论 -
HDU 4436(后缀自动机)
(http://acm.hust.edu.cn/vjudge/contest/view.action?cid=105904#problem/C) 题意:n个串由’0’~’9’组成,问所有不相同子串对应的十进制数之和。 解法:把所有的串连起来,构造好后缀自动机,xjb推个公式就好了。要注意的是,子串不允许出现前导0,所以在源点那里不要转移0就好了。还有就是处理的时候要先对节点按step做一遍top原创 2016-03-02 17:46:25 · 533 阅读 · 0 评论 -
POJ 3415(后缀自动机)
(http://acm.hust.edu.cn/vjudge/contest/view.action?cid=105904#problem/E) 题意:给定字符串A,B,int K。问存在多少个(i,j,k)满足A(i,i+k)=B(j,j+k) && k>=K。 解法:把A构造后缀自动机,然后求出right数组。一开始不知道怎么topo排序,看了别人的博客才知道由这个简单的topo方法。然后用原创 2016-03-02 18:08:54 · 388 阅读 · 0 评论 -
CodeForces 235C(后缀自动机)
(http://acm.hust.edu.cn/vjudge/contest/view.action?cid=105904#problem/F) 题意:给定串s,Q组查询字符串a,问s有多少子串可由a循环构成。 解法:对s构造后缀自动机,将每个a复制成aa进行查询,要注意,s的每个子串可能和a的很多循环串相同,但只能算一次。#include <cstdio>#include <cstring>转载 2016-03-02 18:52:47 · 393 阅读 · 0 评论 -
SPOJ LCS(后缀自动机)
(http://acm.hust.edu.cn/vjudge/contest/view.action?cid=106071#problem/A) 题意:问串A,B的最长相同子串 解法:直接构造A的后缀自动机,搞一波lcp就好了。#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>#includ原创 2016-03-02 18:56:29 · 471 阅读 · 0 评论 -
SPOJ LCS2(后缀自动机)
(http://acm.hust.edu.cn/vjudge/contest/view.action?cid=106071#problem/B) 题意:给定n个串,求最长相同子串。 解法:对第一个构造后缀自动机,记录la[p],为前k个串在这以点的最常匹配长度。#include <cstdio>#include <cstring>#include <iostream>#include <a原创 2016-03-02 18:59:40 · 409 阅读 · 0 评论 -
SPOJ NSUBSTR(后缀自动机)
(http://acm.hust.edu.cn/vjudge/contest/view.action?cid=106071#problem/C) 题意:问s,分别输出1~len的子串最多出现次数。 解法:构造后缀自动机,然后拿step和right搞一搞就好了。#include <cstdio>#include <cstring>#include <iostream>#include <al原创 2016-03-02 19:05:51 · 330 阅读 · 0 评论