随笔分类 - 算法复习
摘要:
PAM(回文自动机) 应用 本质不同回文子串个数:个串的本质不同回文子串个数等于回文树的状态数(排除奇根和偶根两个状态)。 回文子串出现次数:由于回文树的构造过程中,节点本身就是按照拓扑序插入,因此只需要逆序枚举所有状态,将当前状态的出现次数加到其 $fail$ 指针对应状态的出现次数上即可。 构建
阅读全文

摘要:
AC 自动机 应用: 多模式串匹配 构建 将所有模式串构成一个 Trie 树 树上的每个节点代表某一个(或多个)模式串的前缀 每个节点同时有一个失配指针$fail$,指向当前节点所代表的的串可以匹配到的最长前缀,这个前缀还必须是这个串的后缀。类似于$KMP$的$next$数组,但$KMP$的$nex
阅读全文

摘要:
定义 SAM的定义 字符串$s$的SAM是一个可接受$s$的所有后缀的最小$DFA$(确定的有穷自动机),可以参考编译原理的龙书(强烈推荐) SAM是一张有向无环图。节点被称作状态,边被称作状态之间的转移 存在一个初始状态$t_0$,其他各结点都可以从$t_0$出发到达 没有输出$\epsilon$
阅读全文

摘要:
生成函数 作用:建立函数和数列之间的联系,通过函数的变换来做数列操作 通常把数列映射为一个多项式的系数,然后通过级数求和的方法将多项式变换到一个函数。 实例: $f(x)=1+x+x^2+x^3+\cdots$,满足$x\lt 1$ 建立了等差数列$<1,1,1,\cdots>$和函数$f(x)=\
阅读全文

摘要:
基础知识 点积:$\vec{P}\cdot \vec{Q}=|P||Q|cos\theta=x_1x_2+y_1y_2$ 几何意义 $\vec{P}$在$\vec{Q}$上的投影与$\vec{Q}$的长度的乘积。 应用: 判断两个向量是否垂直:$\vec{P}⊥\vec{Q} \iff \vec{P
阅读全文

摘要:
KMP 应用:定义$nxt[i]$表示字符串$S$的子串$S_0,\cdots,S_i$中的最长公共真前后缀(不包括串本身),即$S_0,\cdots, S_{nxt[i]-1}=S_{i-nxt[i]+1},\cdots,S_i$ 时间复杂度: $O(n)$ 模板 vector<int> KMP(
阅读全文

摘要:
上升幂与下降幂 上升幂:\(x^{\overline{n}}=\prod_{k=0}^{n-1}(x+k)=x(x+1)(x+2)...(x+n-1)\) 下降幂:\(x^{\underline{n}}=\frac{x!}{(x-n)!}=\prod_{k=0}^{n-1}(x-k)\) 第一类斯特
阅读全文

摘要:
树上分治 点分治 $O(nlogn)$ 主要解决有关树上路径统计的问题(其中路径的边权可能需要满足一些条件) **1.基本思想:**点分治的本质其实是将一棵树拆分成许多棵子树处理,并不断进行。 **2.分治点的选择:**树的重心 3.点分治 路径的两个端点在同一个子树内 路径的两个端点不在同一个子树
阅读全文

摘要:
多维空间数据结构复习 CDQ分治 应用 离线解决三维偏序问题,一般做法是先按第一位排序,然后分治排序第二维,排序的过程中用树状数组维护第三维。在排完第一维后,其实问题就相当于求一个二维偏序了。 CDQ分治的分治思想:合并两个子问题,同时考虑左半段内的修改对右半段内的查询产生的影响,就是用左半段的子问
阅读全文

摘要:
网络流建图总结 1.最小割 模型转化:原题求最小代价,则直接设割掉的是需要选择的。若原题求最大收益,则设割掉的是不选择的,最后用总和减去最小割就是答案。 1.1割的性质 性质1:(不连通)在给定的流网络中,去掉割的边集,则不存在任何一条从源到汇的路径。 性质2:(两类点)在给定的流网络中,任意一个割
阅读全文

摘要:
数论的一些反演 1.狄利克雷卷积 1.1积性函数 对于数论函数$f$,对任意互质的正整数$p,q$,满足$f(pq)=f(p)f(q)$,则称$f$为积性函数 对于数论函数$f$,对任意的正整数$p,q$,满足$f(pq)=f(p)f(q)$,则称$f$为完全积性函数 积性函数一定满足$f(1)=1
阅读全文

摘要:
后缀数组 数组的定义 一下排名均是在字典序下的排名 \(sa[i]\):排名为$i$的后缀的编号 \(rank[i]\):第$i$个后缀串的排名 有$rank[sa[i]]=i$和$sa[rank[i]]=i$ \(height[i]\):排名为$i$的后缀和排名为$i-1$的后缀的最长公共前缀 模
阅读全文

摘要:
吉如一线段树 \([BZOJ4695 最假女选手]\) 题意: 在刚刚结束的水题嘉年华的压轴节目放水大赛中,$wyy$如愿以偿的得到了最假女选手的奖项。但是作为主办人的 C_SUNSHINE为了证明 $wyy$确实在放水,决定出一道基础题考察$wyy$的姿势水平。给定一个长度为 $N$序列,编号 从
阅读全文

摘要:
组合数学 (一点点进阶) 1.组合数相关公式 下降阶乘幂:\(n^{\underset {\_}{k}}=n\times(n-1)\times...\times (n-k+1)\) \(C_n^k=\frac{n!}{k!(n-k)!}=\frac{n^{\underset {\_}{k}}}{k!
阅读全文

摘要:
数位DP 感谢大佬的分享 凌乱之风 模板 注意数位DP只与位数有关,当给出的数的范围很大但知道位数的情况下,可以考虑用数位DP $dfs$写法 int dfs(int pos, int pre, int lead, int limit,其它记录转移状态的参数) { if (!pos) { 边界条件
阅读全文
