数据结构 1. 平衡树 2. 可持久化数据结构(主席树) 3. 莫队 4. LCT 5. 分治(点分治 + CDQ) 6. 树套树 DP 1. 后效性处理之高斯消元 2. 决策单调性 3. 树形DP(换根,倍增) 字符串 1. KMP(fail树,DP) 2. AC自动机 3. Trie(可持久化T ...
分类:
其他好文 时间:
2020-01-30 09:22:00
阅读次数:
95
阿狸的打字机 首先建立fail树,考虑离线询问。考虑怎么用ACAM处理一个串在另一个串的出现次数, 可以给询问按照主串分类,对于每一个主串分别处理所有询问。某一个串在主串中出现,主串中位于这个串最后的那个位置跳fail必然可以跳到这个串。所以可以树上差分搞一下 大概没啥问题? 然后写了一发,就70了 ...
分类:
其他好文 时间:
2020-01-16 21:49:40
阅读次数:
68
什么回文算法,我只会背两个板。 「双倍回文」 利用pam的fail树定义:一个节点的fail是他的最长回文后缀 那么在这棵树上dfs,记录沿路经过了哪些长度 那么到达长度为len的回文节点时,如果 len%4==0&&vis[len/2] 则作出贡献 「最长双回文串」 两个回文串拼起来的方案数,可以 ...
分类:
编程语言 时间:
2019-12-26 13:33:32
阅读次数:
86
最长双回文串 裸的回文自动机,将串reverse再插入一遍即可。 双倍回文 这题可以只维护偶回文串然后疯狂加特判判掉奇串 回文自动机,再多维护一个trans指针,指向trans[x]表示长度小于len[x]/2的最长的回文后缀 trans指针可以从父亲(不是fail)的trans指针求出。 其实还可 ...
分类:
其他好文 时间:
2019-12-25 20:47:39
阅读次数:
119
解法看着吓人,其实就是为了优化ac自动机上暴力跳fail指针。。 另外这题对于复杂度的分析很有学习价值 ...
分类:
其他好文 时间:
2019-10-19 00:02:18
阅读次数:
98
题意 给出一个字典,每个单词去掉元音字母 之后形成一个新字典。 先给出一个只有辅音组成的串,用原字典中的单词还原该串,若存在多种还原方式,输出还原后元音字母数量最多的那种,若依旧多种,则任意输出。 "传送门" 思路 ac自动机fail树上跑dp的一眼套路题。 总结一下遇到的坑: 1. 多个单词去掉元 ...
分类:
其他好文 时间:
2019-10-14 12:52:21
阅读次数:
83
注意标记一个点后,fail树上的子节点都会被标记 跑spfa,dp也可以 ...
分类:
其他好文 时间:
2019-10-13 01:08:59
阅读次数:
118
问题描述 "LG5357" 题解 不是 的`AC自动机`复杂度是假的。 把 搞出来,建立 ,树上爆搜一遍就好了。 $\mathrm{Code}$ cpp include using namespace std; template void read(Tp &x){ x=0;char ch=1;int ...
分类:
其他好文 时间:
2019-10-04 22:39:22
阅读次数:
113
题意:给你一个长度为n的字符串和m组询问,每组询问给出l,r,k,求s[l,r]的第k次出现的左端点。 解法一: 求出后缀数组,按照排名建主席树,对于每组询问二分或倍增找出主席树上所对应的的左右端点,求第k大的下标即可。 解法二: 建立后缀自动机,对后缀树(fail树)作线段树合并可得到每个结点包含 ...
分类:
编程语言 时间:
2019-09-12 23:37:36
阅读次数:
144
Recently George is preparing for the Graduate Record Examinations (GRE for short). Obviously the most important thing is reciting the words. Now Georg ...
分类:
其他好文 时间:
2019-09-03 21:54:30
阅读次数:
67