广义后缀自动机
Nightmare丶
登高必自卑,行远必自迩
展开
-
「ICPC World Finals 2019」何以伊名始(广义后缀自动机)
题目链接 题解: 对输入的trie图建立SAM,然后将询问反转,这个串对应的点的endpos集合就是答案。 还挺水的(逃 AC代码: #pragma GCC optimize(2) #include<bits/stdc++.h> using namespace std; const int MAXN = 2e6+50; int trie[MAXN][26],nxt[MAXN][26]...原创 2019-12-09 00:12:42 · 340 阅读 · 0 评论 -
Good Article Good sentence HDU - 4416(广义后缀自动机)
Problem In middle school, teachers used to encourage us to pick up pretty sentences so that we could apply those sentences in our own articles. One of my classmates ZengXiao Xian, wanted to get senten...原创 2019-11-28 23:46:32 · 127 阅读 · 0 评论 -
P4081 [USACO17DEC]Standing Out from the Herd(广义后缀自动机)
题意: 定义【独特值】表示只需要该字符串的本质不同的非空子串的个数,如 “amy” 与 “tommy” 两个串,只属于 “amy” 的本质不同的子串为 “a” “am” “amy” 共 3 个。只属于 “tommy” 的本质不同的子串为 “t” “to” “tom” “tomm” “tommy” “o” “om” “omm” “ommy” “mm” “mmy” 共 11 个。 所以 “amy” 的...原创 2019-11-25 00:48:52 · 203 阅读 · 0 评论 -
POJ-3294 Life Forms(广义后缀自动机)
题意: 求出现次数大于n2\frac{n}{2}2n的所有最长子串 题解: 之前用后缀数组+二分写过一次,现在试了下广义SAM,代码量确实少了不少 理解也很简单,加字符的时候记录出现的位置,传递一下即可。 AC代码: #include<iostream> #include<cstring> #include<cstdio> using namespace s...原创 2019-11-24 01:54:29 · 133 阅读 · 0 评论 -
BZOJ 3277: 串(广义后缀自动机)
题意: 字符串是oi界常考的问题。现在给定你n个字符串,询问每个字符串有多少子串(不包括空串)是所有n个字符串中至少k个字符串的子串(注意包括本身)。 题解: 将n个字符串一起建立广义后缀自动机,然后我们可以枚举一个字符串的所有前缀,然后在广义SAM上跑它的所有后缀在其他字符串中出现了多少次,然后根据出现次数,统计贡献即可。 AC代码: #include<bits/stdc++.h>...原创 2019-11-23 16:36:58 · 175 阅读 · 0 评论 -
BZOJ 2806: [Ctsc2012]Cheat(SAM+单调队列优化DP)
题目链接 题解: 首先用作文库建出广义SAMSAMSAM,然后对于每次询问我们可以二分最长长度LLL,预处理出一个maxlenmaxlenmaxlen数组表示当前在字符串S的第iii个字符在广义SAMSAMSAM上能匹配的最长长度,考虑怎么checkcheckcheck,设dp[i]dp[i]dp[i] 表示当前处理到第iii个字符,前i个字符的最大匹配长度,容易发现,对i有贡献的区间位于(i−m...原创 2019-11-14 23:34:59 · 129 阅读 · 0 评论 -
BZOJ 2780: [Spoj]8093 Sevenk Love Oimaster(广义后缀自动机)
Description: Oimaster and sevenk love each other. But recently,sevenk heard that a girl named ChuYuXun was dating with oimaster.As a woman’s nature, sevenk felt angry and began to check oimaster’s onl...原创 2019-11-14 21:01:49 · 148 阅读 · 0 评论