多项式
编号 | 问题 | 算法 |
---|---|---|
5644 | 分治NTT+容斥 | |
4705 | 数组1~k次幂和 | NTT+多项式求逆 |
4723 | 常系数齐次线性递推 | 多项式取模 |
3824 | 常系数齐次线性递推 | 多项式取模 |
5401 | 二项式反演+NTT |
计数
编号 | 问题 | 算法 |
---|---|---|
cf960g | 前缀max个数,后缀max个数 | 第一类斯特林数 |
4827 | i^k的转化 | 第二类斯特林数+树上dp |
cf932e | i^k的转化 | 第二类斯特林数 |
cf961g | 转化+第二类斯特林数 | |
4091 | 第二类斯特林数 | |
4727 | 图的同构计数 | burnside引理 |
cf285e | 二项式反演+DP | |
3270 | 二项式反演+自然数幂和 | |
5434 | 荒漠计数 | 仙人掌多项式 |
4191 | 循环卷积 | ik转化+任意模数NTT |
5293 | ik转化+任意模数NTT+矩阵乘法 |
数论
编号 | 问题 | 算法 |
---|---|---|
4844 | 1/a+1/b=1/c的转化 | 莫比乌斯反演 |
3700 | 推式子+分块维护单点加,区间和 | |
sp34096 | min25筛 | |
5328 | min25筛 | |
4077 | 翻硬币游戏 | sg定理 |
5366 | 待整理 | |
3762 | 求 (b1×b2...×bm)/(a1×a2...×am) 模M的值(非质数) | Pollard Rho+Miller Rabin分解质因数 |
5444 | 推式子+排序区间覆盖 | |
3263 | 求((frac{b+sqrt{d}}{2})^n) | 转化+矩阵快速幂 |
5487 | 寻找递推式 | BM算法 |
5493 | 质数前缀统计 | min25筛(一部分) |
5502 | 求长度与最大公约数乘积最大的 | 扫描线,维护不同的gcd |
几何
编号 | 问题 | 算法 |
---|---|---|
uva10674 | 两圆公切线 | |
4207 | 计算投影面积 | 辛普森积分 |
5328 | 半平面交 | |
4250 | 二元不等式组 | 半平面交 |
4197 | 多边形公共部分 | 半平面交 |
1742 | 最小圆覆盖 | |
3187 | 最小矩形覆盖 | 旋转卡壳 |
1452 | 最远点对 | 旋转卡壳 |
5467 | 圆在多边形内部的大小 | 直线与圆交点+点在多边形内部判定 |
3699 | 不经过给定三角形的点对数 | 扫描线+set |
1756 | 圆和矩形的面积并 | 辛普森积分 |
4518 | 与正多边形匹配 | 二分+圆交点+扫描线+Hall定理 |
4557 | 两个凸包,移动一个,问是否有交点 | 闵可夫斯基合并凸包+点在多边形内部判定 |
5286 | 鱼形图计数 | 扫描线 |
图论
编号 | 问题 | 算法 |
---|---|---|
cf97e | 长度为奇数的简单路径 | 点双缩点 |
2483 | k短路 | 可持久化左偏树 |
3196 | 弦图 | |
cf215f | 转化+2sat | |
5332 | 2sat+传递闭包(bitset优化) | |
3350 | 网格图最短路 | 分治+最短路 |
5025 | 区间建图+传递闭包 | 线段树优化建图+SCC缩点+DAG上DP |
1173 | 网格图删点后的连通性,割点 | 关键点建图+tarjan+bfs(难) |
4630 | 广义圆方树(只有圆方边)+转化 | |
4258 | 一般图匹配 | 带花树 |
3778 | 最大比率生成环 | 01分数规划+spfa负环 |
网络流
编号 | 问题 | 算法 |
---|---|---|
2805 | 最大权闭合子图(有时间序) | 拓扑排序+最小割 |
3980 | 区间选择 | 费用流 |
5331 | 向前匹配,代价为差值 | 主席树优化建图+费用流 |
3153 | 二分+最大流 | |
cf704d | 行列限制 | 有源汇有上下界最小流 |
4003 | 接管子问题 | 网格图黑白染色+费用流(难) |
动态规划
编号 | 问题 | 算法 |
---|---|---|
5280 | dp维护线段树懒标记 | |
4845 | 树上选点 | 树形dp |
5405 | 容斥dp+树形背包 | |
5643 | 树上游走+minmax | 用父节点的一次函数形式表示 |
5492 | 期望dp | |
5369 | 期望dp | |
5363 | nim计数 | dp+组合数 |
3176 | dp+矩阵乘法 | |
3352 | q次操作,每次随机取一个区间并将其中的数都改为max,问期望 | DP+同类转移的合并 |
3266 | dp转网格图+容斥 | |
5371 | 递推+dp+矩乘优化 | |
5279 | 麻将的胡牌张数期望 | dp套dp+预处理+贡献转化(难) |
3886 | 最大连通块 | 插头dp |
1912 | 划分使得每段长度与某数的差的K次方和最小 | 决策单调性优化dp(单调栈版本) |
cf868f | 把一个序列分成k段,使每段中相同元素的对数之和最小 | 决策单调性优化(分治) |
4284 | 树上概率DP+换根 | |
3642 | 修改树边长度使每个节点到根距离相等 | DP+凸包(难) |
2481 | 数位DP | |
cf793e | wqs优化套wqs优化 |
贪心
编号 | 问题 | 算法 |
---|---|---|
cf965e | 贪心 | |
4155 | 环形区间覆盖 | 贪心+倍增 |
5465 | 贪心+倍增 | |
3745 | 枚举+贪心 | |
3294 | 转化+贪心 | |
3826 | 反转+贪心+优先队列 | |
4040 | 贪心 |
树上问题
编号 | 问题 | 算法 |
---|---|---|
3781 | 动态dp(LCT优化) | |
4565 | 两棵树上的距离问题 | 边分治+虚树 |
3345 | 带修改带权重心 | 点分树(相当于树上二分) |
4899 | 克鲁斯卡尔重构树+子树交集 | |
cf1192b | 动态直径 | 欧拉序+线段树 |
5327 | 线段树维护虚树 | |
3233 | 虚树+链上处理 | |
3565 | 求三个点两两距离相等的方案数 | 长链剖分优化dp |
4292 | 给定长度范围内,平均值最大路径 | 分数规划+长链剖分+线段树 |
2664 | 求树上所有路径的颜色数之和 | 删去颜色+整体处理 |
5659 | 交换+删边(CSP题) | 考虑链和菊花的情况 |
4582 | 求树中有多少联通子树和这个树有相同重心 | 重心性质+DP |
cf708c | 换根DP |
数据结构
编号 | 问题 | 算法 |
---|---|---|
5198 | 线段树合并优化dp | |
4108 | 分块 | |
4602 | 整体二分(可以不用递归分治) | |
5358 | 懒标记的应用 | |
3246 | 区间的子区间的RMQ之和 | RMQ+单调栈+(思维,分治) |
3722 | 单调栈+线段树+离线处理 | |
5445 | 维护连续段 | 线段树+三维偏序CDQ分治 |
5443 | 带修改,求从一个点经过权值不小于某数的边能到达的点数 | 带撤销并查集+分块(重构) |
cf464e | 最短路(边权为(2^x)) | 可持久化线段树维护高精+标记永久化+dij |
3688 | 随机修改,查询两个点是否相同 | 二维线段树 |
5781 | 单调栈+扫描线+树状数组 |
字符串
编号 | 问题 | 算法 |
---|---|---|
4324 | 扭动的回文串 | manacher+二分,哈希 |
3975 | 第k小子串 | 后缀自动机 |
3900 | 字符串拼接成回文 | spfa+hash+状态优化 |
5410 | 扩展KMP(类似manacher思想) | |
5334 | 每个前缀的最小循环串 | 维护可行集合 |
其他技巧
编号 | 问题 | 算法 |
---|---|---|
cf710f | 动态AC自动机 | 二进制分组 |
2597 | 有向图割点(必经点) | 支配树 |
5372 | 奇怪的dfs | |
1852 | 跳跳棋 | 转移单向性+二分lca |
4224 | 左右添加删除的最长倍数子序列 | 枚举约数,更新转移 |
2503 | 模拟退火 | |
1337 | 找平衡点 | 模拟退火+物理 |
5230 | 求01矩阵中有几对不相交的矩形 | 单调栈+容斥+前缀和 |