做题记录
多项式
| 编号 | 问题 | 算法 |
|---|---|---|
| 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矩阵中有几对不相交的矩形 | 单调栈+容斥+前缀和 |

浙公网安备 33010602011771号