技巧与结论
关于子序列的问题,回归到原序列中是选定位置 ,对应值 ,此时 部分可以任意选, 不能有 , 不能有 ,以此类推。
例题:CodeForces-660E Different Subsets For All Tuples *2300
字典序比较转化成一个前缀一致,后一位不同,枚举不同的这一位。要求字典序较大的最小串或字典序较小的最大串,优先匹配尽量多之后再出现不同位置。
例题:CodeForces-1037H Security *3200
对于任何满足 的序列,都有:
当 时,还满足:
证明:闲话
例题:Luogu-P1306 斐波那契公约数、BZOJ-4833 最小公倍佩尔数
一个由中国剩余定理产生的推论:
对于同余方程组:
以及同余方程:
假定所有 的取值范围均为小于方程模数的自然数,则该方程解的个数等于拆成若干模数互质的方程解的个数之积。
显然满足 就一定满足 。
于是方程的解 一定与方程组中每个方程 的一个解 在模 意义下同余,从而构造出线性同余方程组,解在给定取值范围内是唯一的。
因此存在多少组构造出的线性同余方程组,就存在多少个解。
在点分树上,节点 是 的祖先当且仅当原树上路径 中 是第一个被选取的节点。
随机选取下一个分治点同样具有这样的性质,复杂度的期望可根据期望的线性性求出。即一个节点的深度为其产生的贡献,深度等价于点分树上祖先个数(包括自己)。
上面已经说到 是 的祖先当且仅当第一个被选取,概率为 。
因此答案应为:
可以统计每个距离对应路径个数,使用点分治以及 FFT 加速卷积,复杂度 。
期望的线性性:
计算 可以考虑计算 再处理。
例题:AtCoder-ABC295_E Kth Number
平均数等于 等价于 ,也即 。
例题:AtCoder-ARC104_D Multiset Mean
对 的计数可以枚举偏序关系(离散化后的数组)再填值域。
例题:AtCoder-ARC104_E Random LIS
博弈论可以考虑“模仿操作”,即后手会由于某种目的模仿先手的操作从而保持局面没有实质改变。
对于树上任意节点 ,其到所有节点路径中最大的一条 , 一定是树上直径的一端点。
证明考虑路径 以及直径 拐点 与 ,如果 最大则说明将路径与直径各自一半以及拐点的连边应当比直径更大。
例题:AtCoder-ARC108_F Paint Tree
单模式串子串匹配或回文子序列匹配,可以考虑使用卷积。
对于回文而言就是卷到对称中心二倍的位置,正常的匹配可以将模式串翻转就等价于回文了。
通配符匹配可以先卷积求出有多少位置有通配符,再将通配符设成 , 串字符从小到大设成 , 串字符从小到大设成 ,卷积后结果应该是 的幂,指数为长度减去通配符个数。
例题:Luogu-P4199 万径人踪灭、Luogu-P4173 残缺的字符串
答案要求所有满足条件集合的 之和,大多是只考虑 的倍数再容斥,同时只考虑 的倍数指向了根号分治。
题目形如每个元素有一权值 ,可以放在位置集合 ,每个位置只能放 个元素,求合法的最大权值和。
使用 拟阵 或模拟费用流的每次增广可以证明从大到小能放即放一定不劣,接下来就是常规二分图匹配,从大到小加入元素判断是否有完美匹配,使用 Hall 定理。可能需要数据结构维护。
多组询问,每次询问规模为 , 与 同级,则 的取值有 中,可以离线暴力。
树上距离满足某个条件的二元组、三元组计数,考虑在 而不是路径交点位置统计,这样可以长链剖分优化。
例题:Luogu-P5904 POI 2014 HOT-Hotels 加强版
树上黑白染色连通块统计,在连通块深度最小位置记录答案,那么只需判断 且 。
有序链表插入 ,删除 ,可以使用只删除莫队降低复杂度。
树上 DP 和组合计数有关时,需要排列数之类的情况可以改成算概率,这样子树间独立。
树上 级祖先可以重链剖分在 DFS 序上暴跳链顶,再在某一重链取到结果(重链上 DFS 序连续),比倍增常数小。
树上关于 级祖先的二分也可以重链剖分在 DFS 序上暴跳链顶,再在某一重链上二分,比直接二分少一个 。
莫比乌斯反演后不能直接数论分块且多次询问的问题,可以考虑对 关于 分治,通常是大于直接枚举暴力算,小于预处理函数。
例题:Luogu-P4240 毒瘤之神的考验、Luogu-P5572 CmdOI 2019 简单的数论题
形如 的可以设 ,这样就转成 ,可以化简问题。
例题:AtCoder-ARC107_F Sum of Abs
统计有多少节点是祖先中第一个符合条件的,也就是有多少节点本身合法且父亲不合法,就是对合法节点构成的子树计数,有等式:
因此令合法节点权值为 ,求权值和即可。(应用前提是满足父亲合法儿子一定合法。)
例题:Luogu-P4183 USACO 2018 JAN Cow at Large P
一个图的最小度数不会大于 ,可以暴力枚举。
例题:Luogu-P8905 USACO 2022 DEC Strongest Friendship Group G
有等式 成立,当贡献为平方时,可以考虑拆成点对计算。
曼哈顿距离转切比雪夫距离:
曼哈顿距离 可以表示为 ,这等价于 ,也就是 改为 。
切比雪夫距离转曼哈顿距离:
直接倒着回去变成 即可。
作者:SoyTony
出处:https://www.cnblogs.com/SoyTony/p/Tricks_and_Consequences.html
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
· SQL Server 2025 AI相关能力初探
· 为什么 退出登录 或 修改密码 无法使 token 失效