
后缀自动机
A_loud_name
23333333~~~
展开
-
[Ahoi2013]差异 bzoj 3238 后缀自动机
题目分析后缀自动机模板后缀自动机真是个强大的数据结构大佬的链接——后缀自动机code#include#include#include#include#include#define N 500005#define LL long longusing namespace std;int n;int len[N*2];int ch[N*2][30]原创 2018-02-01 20:28:08 · 385 阅读 · 0 评论 -
[bzoj2946]公共串
题目给出几个由小写字母构成的单词,求它们最长的公共子串的长度。 任务: l 读入单词 l 计算最长公共子串的长度 l 输出结果分析对第一个字符串建后缀自动机 对于每一个状态维护f[i]表示所有串与该状态匹配的公共最长长度。 对于其他的字符串,都在后缀自动机上进行匹配。 并每次都计算g[i]表示该字符串与状态i匹配的最大长度。 ...原创 2018-02-27 20:48:07 · 287 阅读 · 0 评论 -
找回密码 jzoj 4025 后缀自动机
题目Kevin是一个热爱字符串的小孩。有一天,他把自己的微信登录密码给忘记了,万般无奈之下只好点“找回密码”。 这时候,网页上出现了当初设定的密保问题:在字符串st中,有若干个内容不同的子串,请问其中字典序第k小的子串是什么? 很可惜的是,Kevin现在已经不会写程序了,所以,他找到了睿智的你来帮忙。分析对串创建SAM,然后,拓扑一下,算出每个状态,如果继续往后边走,能够生成多少种...原创 2018-04-07 20:11:58 · 492 阅读 · 0 评论 -
Glass Beads poj 1509
题目一个字符串可以将第一个字符放到最后一位,然后问不断这样做可以得到的字典序最小的字符串分析后缀自动机 每次找最小的字母边转移,转移l次,找到的就是最小串表示的结尾点。code#include<iostream>#include<cstdio>#include<cstdlib>#include<cstring>#in...原创 2018-04-16 21:07:15 · 251 阅读 · 0 评论 -
求排名为K的子串
题目给我们一个字符串,让我们求其所有不相同的子串中按字典序排名为K的子串分析先用SAM跑一遍。 然后在SAM上DP。 因为从SAM的起点跑可以跑出所有的子串,所以我们用dp[i]表示从i点出发跑出的子串的个数,显然有 dp[i]=∑ j=a,z dp[ch[i,j]]+1 然后每次按照a..za..z的顺序从起点开始dfs,如果沿ch[i,j]的方向走下去的个数≤k,就沿着...原创 2018-04-17 08:22:05 · 451 阅读 · 0 评论