一些套路的备忘笔记

杂项

  1. baka's trick:尺取法可以不用删除做到线性,前提是合并两个连续段答案的复杂度比较低。

  2. 指定某两个结构的元素不交,可以考虑随机黑白染色,当结构比较简单,元素个数较小时正确率有保证。

  3. 对于一些限制很奇怪的选物品题目可以尝试定义一些 01 变量转成规划问题,可以用无穷大的代价描述限制。

  4. 树上连通块当然是点分治钦定一个根最好做。点分治不止可以用于路径。

  5. xorshift 32 参数: 13 17 5;xorshift 64 参数:13 7 17

  6. 区间没有相交只有包含排除,有时候暗示着单调栈。

  7. 每次随机一条边,如果加入不产生环就加入,用这样的方式随机产生的树的深度是 Θ(n13),且深度和高度的乘积之和是 Θ(n12)

组合计数类

  1. 生成一个结构,每次在原先的基础上进行一些转化得到新的结构。当你发现依次递推非常困难的时候可以考虑从开头插入,考虑第一步对后面生成的结构的影响。这点不只适用于组合计数。

  2. 对于 k=1mxk=n 的限制,在任何解中,本质不同的 xk 的数目是 O(n)

  3. 一道题目涉及到异或和的时候想想Kummer定理,(nk) mod 2=1kn,这是Lucas定理的一个直接推论。

  4. 整除可以单位根反演。

  5. 神秘容斥:i=0k(ki)(m1)i=mk

数论类

  1. 处理取模:xmodp=xpxp

  2. 处理 1 的幂:(1)a=12(amod2)=12(a2a2),从而把 a 从指数上拿下来。

  3. 处理求和式:交换求和顺序,如果不能交换,考虑凭空求和:x=0x11

  4. 处理有关上下取整的限制:xyxyxyxy,反之亦然,可以这样把取整符号里的除法、根号等去掉然后再把取整加回去。

  5. [x=1] 考虑凭空莫反转化成 d|xμ(d)[gcd(x,y)=d] 考虑枚举 d,使得 Xd=x,Yd=y,然后变成 [gcd(X,Y)=1],用凭空莫反。

  6. 某个数与另一个数互质,可以考虑转化为模另一个数的所有质因子都不为0。当然也可以考虑莫反,这两者其实差不多。

结论类

  1. 考虑一个序列a,满足它的和为1,则它的所有循环同构串互不相同,且其中恰好有一个满足其所有部分和为正。(Raney引理,出自《混凝土数学》)

  2. 两维值域在 [1,x]Z 的凸包大小是 O(x23)

  3. 总共有 n 个点的点集,凸包大小是 Θ(logn) 级别。事实上这是基于随机排列它的前缀最大值序列值个数期望是 Θ(logn)

构造类

  1. 减少步数可以考虑 DP 求最小步数然后反过来构造。

多项式

  1. a2k 的逆元,可以构造 F(x)=ax1,求它在 modxk 意义下的根,其中 xZ2 中。那么可以基于牛顿迭代做到 Θ(logk)
posted @   kyEEcccccc  阅读(452)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示