![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
后缀自动机
Dale_zero
从零开始吧!
展开
-
hdu 4622 Reincarnation 后缀自动机,记忆化
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4622 题目要求处理出询问的从i到j的子串的不同子串的数量,因为串长最大2000,所以n^2+记忆化处理出任意从i到j的不同子串数量(即每个节点的max-其父节点的max) #include<bits/stdc++.h> #include<iostream> #define...原创 2018-10-05 13:56:24 · 209 阅读 · 0 评论 -
hdu 5470 Typewriter 后缀自动机+单调队列优化DP
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5470 这道题是用的是后缀自动机 + 单调队列优化DP。 正常考虑DP的话,暴力DP需要O(n^2)的复杂度,不可行。这道题用单调队列优化DP可以到O(n)的复杂度。 用dp【i】表示写出前i个字符需要的cost。则求dp【i】的时候有两种转移情况 ①:dp【i-1】+cost【s【i】】。 ...原创 2018-10-06 15:17:10 · 322 阅读 · 0 评论 -
hdu 6194string string string 后缀自动机
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6194 查询原串中出现次数等于k次的子串数量。需要用到基数排序。 构造完后缀自动机之后将节点按照maxlen值从小到大进行排序。 因为某个节点p的父节点fp的maxlen值一定比p的maxlen小(因为其right集合比p大,right(p)是right(fp)的子集),所以fp一定排在p前面。 ...原创 2018-10-06 16:18:58 · 222 阅读 · 0 评论 -
2018焦作网络赛 H String and Times
题目链接:https://nanti.jisuanke.com/t/31717 计算原串中,有多少子串的出现次数位于l和r之间,后缀自动机的题目,建立后缀自动机之后进行拓扑排序,将子节点出现的次数不断向它在parent树上的父节点追加更新,计算每个节点right集合的大小,得到的就是其代表字符串出现的次数,有时间写一篇SAM的学习笔记吧,希望能帮到像我一样刚入门的新手。。 还有这道题比较坑的一...原创 2018-09-29 16:58:03 · 305 阅读 · 0 评论