摘要:
计算几何 嗯,是我讨厌且不擅长的东西) 现在好像很少直接考,但是可以利用它的性质与 DP 等东西结合,eg:2023春测 T3 做题时多画图手玩,不要把叉积方向弄反了 基础知识 向量 通常用坐标 \(\vec a=(x,y)\) 表示 运算 加减法,数乘,点积见数学必修2 主要是叉积,\(\vec 阅读全文
摘要:
多项式求逆 定义 如果 \(f\),\(g\) 为 \(n\) 次多项式,\(f\times g\equiv1(\bmod\ x^{n+1})\),则 \(g\) 为 \(x\) 的逆元 求法 假设我们已知 \(f\times h\equiv1(\bmod\ x^{\lceil\frac n 2\r 阅读全文
摘要:
多项式乘法 和卷积 若 \(h=f\times g\),则 \(h_n=\sum_{i=0}^n f_ig_{n-i}\) 朴素的乘法是 \(O(n^2)\) 的,看起来到了极限 但怎样再快一些? 发现如果把多项式换成点值表示,则 \(O(n)\) 即可计算! 问题是,用系数表示的次数为 \(n\) 阅读全文
摘要:
莫比乌斯反演 推式子必备知识,通常配合筛积性函数,数论分块 先介绍一下前置知识 狄利克雷卷积 定义: 函数 $h=f * g$ 则 $h(n)=\sum_{d|n}f(d)g(\frac n d)=\sum_{ab=n}f(a)g(b)$ 单位元:$\varepsilon=[n=1]$ $f * \ 阅读全文
摘要:
exKMP 它其实是针对一个字符串,求出它的 Z 函数 用到了 manacher 的思想——重复利用已知信息 字符串下标从 $0$ 开始 定义 $z_i$:字符串 $s$ 从 $i$ 开始的后缀与 $s$ 的最大匹配长度 $mx$:当前匹配到的最远点,即 $\max\{z_i+i\}$ $id$:$ 阅读全文
摘要:
它是离线的一种分治算法 每次计算分治中线左边的对右边的贡献或是范围内顺序在前的对顺序在后面的贡献 注意计算顺序,考虑是先分治后计算还是先计算后分治 一般是前一种,但如果计算后面某部分时要用到先计算的结果,就必须先计算后分治 之所以把它归类到数据结构,是因为其实它分治的函数可以看作树套树的外层树,内层 阅读全文
摘要:
点分治 简介 点分治,是用于树上的统计路径各种信息的算法 它的思想从名字就能看出来,是分治的思想 流程 具体的,每条路径一定有一个 lca 那么我们想把路径按 lca 分类处理,这样两段路径就可以拼接 有时也不能说是拼接,可能会用各种数据结构来辅助统计 统计时注意从前往后处理每棵子树,先与前面的拼接 阅读全文
摘要:
矩阵乘法 我们有一个 DP 式,它的转移系数相对固定,不受 DP 值的变化而变化,可以递推 且它通常有一或两维状态,可以分为很多阶段,但每个阶段中状态数不多 现在我们要递推很多次,是线性复杂度接受不了的 便把 DP 的式子写为矩阵的形式,一般在 $O(w^3\log n)$ 复杂度内计算($w$ 为 阅读全文
摘要:
二分图判定 二分图为无奇环的无向图,我们可以对图黑白染色,此时如果出现矛盾,则图不是二分图,否则一定是 那么,黑色的点我们称左部点,白色的为右部点 可能会有问题最后转化为二分图判定,要留心 二分图匹配 这是二分图中常考的应用,有两种算法 算法1:匈牙利算法 思想: 它的核心是每次贪心找到一条增广路 阅读全文
摘要:
Codeforces Round #852 (Div. 2) B. Fedya and Array solution: 观察样例,好像数的构造没什么规律,但答案均为 $2(x-y)$ 定义峰指比环上的两边大的数,谷指比环上的两边小的数 思考要让数的个数尽量少,那单调下降/上升的一段无贡献,且每个产生 阅读全文