01 2020 档案
摘要:思维。
阅读全文
摘要:颓废快乐\雾
阅读全文
摘要:线段树维护连通性
阅读全文
摘要:(类似)斯坦纳树+DP
阅读全文
摘要:虚树入门
阅读全文
摘要:我们把所有相同的字符对的贡献求出来,减去回文子串的个数,就是最后的答案。 求每个回文中心的相同字母对个数 $f[i]$ ,我们可以用卷积去求。贡献是 $2^{f[i]/2+[i\%2==0] 1}$ ,$[i\%2==0]$ 表示位置在 $\frac{i}{2}$ 的字符仅会被记一次,$/2$ 时会
阅读全文
摘要:PAM+DP Great!
阅读全文
摘要:多维护一个转移 $tra[p]$,表示 $\leq \frac{len[p]}{2}$ 的后缀位于的状态。 最后检查一下是否有 $len[tra[p]]=len[p]/2 \ \&\&\ len[tra[p]]\%2==0$ 2020.01.16
阅读全文
摘要:我们对两个 同时开始 ,因为起始状态相同,那么如果遇到相同的转移就说明有相同的状态,把 $sz_x\times sz_y$ 作为贡献加到答案里面即可。注意要分别从两个根 。 2020.01.16
阅读全文
摘要:$E_i=\sum\limits_{i=1}^{j 1}\frac{q_i}{(i j)^2} \sum\limits_{i=j+1}^n \frac{q_i}{(i j)^2}$ ,设 $f_i=\frac{1}{i^2}$,那原式前半部分相当于是 $q\times f$ ,后半部分相当于是 $r
阅读全文
摘要:珂朵莉树
阅读全文
摘要:FFT
阅读全文
摘要:题意:给出一个字符串 $S$ ,给出 $Q$ 个操作,给出$L$ , $R$ , $T$ ,求字典序最小的$S_1$,使得$S_1$为$S[L..R]$的子串,且$S_1$的字典序严格大于$T$。输出这个$S_1$,如果无解输出$ 1$。 $SAM$ + 线段树合并 利用在 $parent树$ 线段
阅读全文
摘要:题意:给定一个主串 $S$ 和 $n$ 个询问串,求每个询问串的所有循环同构在主串中出现的次数总和。 我们把 $S$ 建出 $SAM$ ,对每个询问串我们令 $T'=T[1\cdots n]+T[1\cdots n 1]$ ,我们让 $T'$ 在 $S$ 的 $SAM$ 上跑匹配即可。注意每个点要打
阅读全文
摘要:题意:给定 $S$ ,多组询问,每次 $a,b,c,d$ 四个参数,问你子串 $S[a..b]$ 的所有子串和 $S[c..d]$ 的最长公共前缀的长度的最大值是多少。 $SAM$ + 线段树合并 + 二分答案 二分答案 $md$ 找到 $s[c+md 1]$ 在 $SAM$ 上对应的状态并倍增跳到
阅读全文
摘要:$SAM$ + 分类讨论 先建出 $SAM$ 然后求出 $|{\rm endpos}(p)|$ $ \sum w=kq\leq 10^5$,于是对 $k$ 的大小分类讨论。 $k\geq\sqrt n$ , $q\leq\sqrt n$ ,直接在 $SAM$ 匹配 $w$ ,求出每个位置在 $SAM
阅读全文
摘要:$SAM$ + $LCT$ 维护 $parent树$ 每次插入一个点对应修改 $LCT$ 并链加,相当于在链上的 $\rm endpos$ 中添加一个新的位置。 匹配就在 $SAM$ 上跑即可。 2020.01.10
阅读全文
摘要:广义 $SAM$ + 二分答案 + 单调队列优化 $DP$ 对作文库建广义 $SAM$ ,然后求出作文每个位置的最长匹配 $d[i]$,然后二分答案 $md$,然后 $DP$ ,$f[i]$ 表示到 $i$ 的最大匹配长度,有 $f[i]=\max(f[j] j+i),j\in[i d[i],i m
阅读全文
摘要:$SAM $ + 线段树合并 先对 $S$ 建 $SAM$ ;然后对于每一个串询问串 $T$ ,首先在 $S$ 的 $SAM$ 上跑出 $T$ 的每个位置的最长匹配长度 $f[i]$ ,即 $T[i f[i]+1,i]$ 是与 $S$ 中的某个子串是匹配的 且 $f[i]$ 是最大的 。 然后我们再
阅读全文
摘要:广义 $SAM$ 由于叶子节点比较少,直接暴力枚举叶子,把所有串插入广义 $SAM$ 即可。 2020.01.10
阅读全文
摘要:题意:多个串的最长公共子串。 $SAM$ 把第一个串插进去,之后的每个串都在上面跑。 对于每一个串记录在每个点的最长匹配 $mx[]$ 数组;跑完后更新父亲的答案,并且每个点与已有答案取 $\rm min$ 。 2020.01.10
阅读全文
摘要:本质不同的第 $k$ 小:每个点的初始权值为 $1$ 。 只区分位置的第 $k$ 小:每个点的初始权值为 $|{\rm endpos}|$ ,表示出现的次数。 然后进行拓扑排序。 2020.01.09
阅读全文
摘要:题意:给定 $n$ 个字符串 $S_{1\cdots n}$ ,求所有不同的子串的“和”(也就是把串看成数字,在十进制下的求和,允许有前导0)。答案有可能很大,我们需要对 $10^9 + 7$ 取模。 $SAM$ 把所有串用间隔字符拼起来,建出 $SAM$ ,然后在上面 bfs ,求出每个点的答案。
阅读全文
摘要:题意:求 $f(i),i\in[1,n]$ ,$f(i)$ 表示长度为 $i$ 的子串中,出现的最大次数。 $SAM$ 通过 $parent 树$ 子树和求出 $|{\rm endpos}(p)|$ ,然后 $ans[{\rm len}(p)]={\rm max}(ans[{\rm len}(p)]
阅读全文
摘要:题意:给定一个字符串,求本质不同排名第k小的子串。 $SAM$ 建好 $SAM$ 后,拓扑排序求出每个点向下的子串数,然后在 $trie$ 树上贪心(类似线段树二分)。 2020.01.09
阅读全文
摘要:题意:求本质不同的子串数。 "$SA$" $SAM+DP$ 答案即为路径条数。 我们设 $f[u]$ 表示从 $u$ 出发的路径条数:$f[u]=1+\sum_{(u,v,ch)} f[v]$ ,其中 $1$ 代表空串。 最后答案即为 $f[0] 1$ $SAM+parent树$ 每个子串只会出现一
阅读全文
摘要:$SA$ 总数 重复出现的次数。 $\frac{n\times (n+1)}{2} \sum_{i=1}^n ht[i] $ "$SAM$" 2019.01.09
阅读全文
摘要:题意:求 $T$ 与 $S$ 的每个后缀的最长公共前缀。 先令 $s=S+T$ ,$z[i]$ 表示 $T$ 与 $suff_i$ 的最长公共前缀。 (注意下标是从 $0$ 开始的) $z[i]=min(z[i l],r i+1)$ ,前一部分如图: 后一部分是要保证不能越过最靠右的边界,因为更靠右
阅读全文
摘要:题解:二分+莫队 "感谢hl666大佬" 我们搞出后缀数组然后对于每一个询问串二分出在后缀数组上对应的询问区间。 然后我们的问题变成了区间颜色数,即不同种类的后缀数,开个桶即可。 如何考虑对每只猫的贡献?比如总询问数为 $cnt$ ,有一只猫待在桶里的时间为 $[i,j)$ 。我们可以先假设猫能在桶
阅读全文
摘要:题意:求出现次数 $\geq K$ 的最长子串的长度。 $SA$ 中所有 $i\in [l,l+K 2],ht[i]$ 的最小值。单调队列。 $SAM$ 建出来后,跑一边子树和即为出现次数顺便记下答案。 2020.01.09
阅读全文
摘要:题意:求 $\sum_{1\leq i include include define R register int define ll long long using namespace std; namespace Luitaryi { inline int g() { R x=0,f=1; re
阅读全文
摘要:题意:两个字符串取出相同子串的方案数,方案不同当且仅当这两个子串中有一个位置不同。 $SA$ 后缀的前缀是子串,即求 $\sum_{i include include define R register int define ll long long using namespace std; nam
阅读全文
摘要:题意:求差分串的最长公共子串。 $SA$ 二分答案 $k$ ,即求是否存在一段连续的 $ht[]$ ,且其中包括了所有串的后缀。 $SAM$ 板子? 2020.01.09
阅读全文
摘要:题意:对于每个 $k$ ,求 $S[p,p+k 1]==S[q,q+k 1],(p,q)为无序二元组$ 的方案数,并求出在 $k$ 一定时,$vl[p]\times vl[q]$ 的最大值。 $SA$ 并查集:我们把 $ht[]$ 当做边,合并时计算两个集合产生的贡献; 好像还可以单调栈+ST表做吧
阅读全文
摘要:题意:给出一个字符串 $S$ ,将 $S$ 所有的循环同构串按字典序排序,按顺序输出排序后每个串的首字符。 $SA$ 把串复制一倍拼在后面,然后进行后缀排序即可。 $SAM$ ...没必要吧。 2020.01.09
阅读全文

浙公网安备 33010602011771号