
后缀自动机
超越大哥哥
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Longest Common Substring II
给你多个串找到最长公共字串对第一个串建树然后维护所有串在每一个节点处最小的匹配值然后遍历所有节点找到最大需要注意的是需要从最长的后缀开始往前遍历 如果当前节点被匹配到了 那么它的父亲节点一定也被匹配到了 而且是匹配到了父亲节点的长度 (因为子节点最短的后缀也比父亲节点最长的后缀长)#include<iostream>#include<cstdio>...原创 2019-11-14 15:11:41 · 280 阅读 · 0 评论 -
后缀自动机遍历所有子串
裸板子到现在我复杂度还是不会算#include<iostream>#include<cstdio>#include<string.h>#include<cstring>typedef long long ll;using namespace std;int tot = 1;int las = 1;struct node{ ...原创 2019-09-04 23:42:20 · 263 阅读 · 0 评论 -
poj1509(后缀自动机)
其实这个题也可以用最小表示法但是还是练了练后缀自动机明白了构造函数就是构造原串(整个串)的以最后一个字符为止的所有后缀都加上一个字符产生新串的后缀这个题目就是找这个字符串循环中的最小表示直接两个原串一拼接 所有的循环都是拼接后长串的后缀找到长度为len的最小后缀即可#include<iostream>#include<cstdio>#inc...原创 2019-09-05 15:08:22 · 206 阅读 · 0 评论 -
SPOJ1811(后缀自动机)
一个串建DAG另一个串直接跑就可以跑的时候三种情况第一种当前的root就有c这个出边 那么 直接跑到下一位就好第二种当前的root没有c这个出边 但是当前root的别的状态的后缀有出边那么不断跳fa跳到有出边即可(因为当前length(root)必然大于其length(fa)并且kmp思想 匹配了root代表的后缀那么fa也匹配了,所以肯定是length(fa)+1)如果跳到r...原创 2019-09-05 17:24:11 · 220 阅读 · 0 评论