随笔分类 - 字符串算法 -- SAM(后缀自动机)
摘要:正着做着实不太好做,正难则反,考虑反着做。 把i,j看成在切割字符串,我们统计有多少对(i,j)会切割所有与$s_{l,r}$相同的串。对于在后缀自动机上表示$s_{l,r}$的节点x,x的parent子树内的endpos节点集合,就是和$s_{l,r}$相等的串的最后一个字符的出现位置。我们相当于
阅读全文
摘要:还有不几天就省选了,一定要稳住心态,倍加努力 2019 3 27 T1 spy (打表) 题目大意:已知$b_{i}=\sum\limits_{i=0}^{n-1} f((i\;or\;j)\;xor\;i)a_{i}$,现在给出$b$数组,让你还原$a$数组。$n\leq 2^{20}$ 打表题.
阅读全文
摘要:题目大意:略 令$ION2017=S,ION2018=T$ 对$S$建$SAM$,每次都把$T$放进去跑,求出结尾是i的前缀串,能匹配上$S$的最长后缀长度为$f_{i}$ 由于$T$必须在$[l,r]$上匹配,设现在能匹配的长度为$len$,在后缀自动机的$x$点,添加一个字符$c$,则$trs[
阅读全文
摘要:题目大意: 给你一堆模式串和文本串 对于每个文本串,我们可以把它不可重叠地拆分成很多子串,如果拆分出的串作为子串出现在了任何一个模式串中,我们称它是“眼熟的”,我们必须保证“眼熟的”子串总长度不小于文本串的90%,现在定义一个数$L$,表示拆分出的子串的最小长度,求每个文本串的$L$的最大值 神题
阅读全文
摘要:题目大意: 给你一个字符串,求其中回文子串的长度*出现次数的最大值 明明是PAM裸题我干嘛要用SAM做 回文子串有一个神奇的性质,一个字符串本质不同的回文子串个数是$O(n)$级别的 用$manacher$的思想分析一下,$maxright$指针向右扩展才会产生新的回文串 其它的回文串都根据之前求得
阅读全文
摘要:题目大意: 懒得概括了 神题,搞了2个半晚上,还认为自己的是对的...一直调不过,最后终于在jdr神犇的帮助下过了这道题 线段树合并该是这道题最好理解且最好写的做法了,貌似主席树也行?但线段树合并这个算法实在是太优美了 一个模式串从左到右为开头进行匹配,如果在前面已经匹配成功了,后面就算能匹配成功也
阅读全文
摘要:题目大意: 让你维护一个文本串,支持在末尾插入字符,以及查询某个模式串在其中出现了多少次 什么sd题 $LCT$动态维护$parent$树,再用[BJOI2014]大融合的方法维护子树大小就行了 不要像我一样把LCT打错了 另外猫琨说这道题字符集开到2就行了,数据里只有A和B
阅读全文
摘要:题目大意: 给你一个字符串S,求关于每个位置x的识别串T的最短长度,T必须满足覆盖x,且T在S中仅出现一次 神题 以节点x为结尾的识别串,必须满足它在$parent$树的子树中只有一个$endpos$节点 若令$fa=pre_{x},L=dep_{fa},R=dep_{x}$ 1.对于以$i\in[
阅读全文
摘要:题目大意: 给你$n$个大串和$m$个询问,每次给出一个字符串$s$询问在多少个大串中出现过 好神的一道题 对$n$个大串建出广义$SAM$,建出$parent$树 把字符串$s$放到$SAM$里跑,找到能表示字符串$s$的节点$x$ 问题转化为在$parent$树中,$x$节点的子树内,有多少个编
阅读全文
摘要:题目大意: 给你一个字符串,求字典序第$k$小的串是什么 先建出$sam$和$parent$树 在$trs$图中,从根走向节点x的每一条路径都是x能代表的一个字符串 $parent$树以 某个节点为根的子树内$endpos$节点的数量,表示这个节点 能代表的所有字符串 正序作为后缀在所有前缀串中出现
阅读全文
摘要:SAM板子,没什么好说的 建出来SAM然后跑个DFS统计答案就行了
阅读全文

浙公网安备 33010602011771号