ACM 学习索引
从语言基础到算法专题,共 215 篇已发布笔记。先按难度选阶段,再按主题查找。
难度是本轮整理的阅读建议;比赛合集按涉及的主要算法分级,个别题目可能更难。只有题面、链接或待补内容的笔记放在末尾。
旧文的“整理日期”按学习顺序编排,仅用于排序,不代表原始发表时间。实际整理于 2026-10-23,后续新文章使用真实发布日期。
入门
- 二维和一维坐标相互转换 — C++与基础
- 二维vector的使用 — C++与基础
- 关于位运算的一些需要搞清楚的边界 — C++与基础
- 关于char数组的字符串 — C++与基础
- 输入输出处理 — C++与基础
- 输入输出处理(1) — C++与基础
- 一些常用到的有用知识 — C++与基础
- 一些常用到的有用知识(1) — C++与基础
基础
- 比赛环境配置及测试 — C++与基础
- 常用数学库函数 — C++与基础
- 关于浮点数误差以及四舍五入 — C++与基础
- int128 — C++与基础
- Lambda 函数(也叫 Lambda 表达式)。 — C++与基础
- 5157 — 基础算法
- 离散化 — 基础算法
- 维护除了自己外的最大值 — 基础算法
- 无容量限制的出栈序列验证——模拟 — 基础算法
- 约瑟夫问题模拟 — 基础算法
- Acwing第 131 场周赛 之找最值过程中维护某个性质的方案 — 基础算法
- 不带权并查集——jly — 数据结构
- 链表 — 数据结构
- 最基础树状数组 — 数据结构
- ST 表 — 数据结构
- 最大子序列和 — 动态规划
- 染色法判定二分图 — 图论
- 染色法判定二分图(1) — 图论
- 拓扑排序 — 图论
- 网格图上问题 — 图论
- 最短路 — 图论
- 最短路Floyd — 图论
- 最小生成树 — 图论
- bellman-ford算法理解 — 图论
- 二叉树给出先序和中序遍历序列,求和树 要求输出中序遍历序列; — 树上算法
- 二叉树扩展先序遍历转中序遍历 — 树上算法
- 二叉树已经知道先序中序推后序 — 树上算法
- 给出中序和按层遍历,求该树的先序遍历,后序遍历,叶子结点。 — 树上算法
- 树的重心 — 树上算法
- 完全二叉树的公共父结点 — 树上算法
- 为什么树的dfs不需要vis数组,只需要维护父节点就可以? — 树上算法
- 字符串哈希 — 字符串
- 字符串哈希学习笔记 — 字符串
- trie字典树 — 字符串
- 5156 — 数学
- 矩阵乘法 — 数学
- 容斥原理应用Acwing890借鉴题解 — 数学
- 质因数分解 — 数学
- 2023牛客周赛 Round 6 — 比赛题解
- 牛客周赛 Round 11 — 比赛题解
- Codeforces Round 784 (Div. 4) — 比赛题解
- Codeforces Round 859 (Div. 4) — 比赛题解
- Codeforces Round 891 (Div. 3) 总结 — 比赛题解
- CodeTON Round 7 (Div. 1 + Div. 2, Rated, Prizes!) — 比赛题解
进阶
- 分治初步 — 基础算法
- 贡献法解决子串问题 — 基础算法
- 和为k的连续子序列 存在吗 — 基础算法
- 交互题专题 — 基础算法
- 三分法 — 基础算法
- 双指针具有单调性 — 基础算法
- 一类区间查询对应答案具有单调性--维护前缀对应端点最大值 — 基础算法
- CCF认证——202109-2 贡献的变化——差分维护,前缀和算答案 — 基础算法
- 带权并查集板子 — 数据结构
- 单调栈 — 数据结构
- 利用优先队列维护序列前k大的和 — 数据结构
- 逆序对——权值树状数组+离散化 — 数据结构
- 普通对顶堆 — 数据结构
- 算法学习——带权并查集dls版本 — 数据结构
- 维护集合最值和集合全体加 — 数据结构
- 线段树 — 数据结构
- 线段树模板区间加(含懒标记) — 数据结构
- 一类链式并查集问题 — 数据结构
- Codeforces Round 892 (Div. 2) — 数据结构
- SDUT OJ——基于hh的项链的维护区间种类数 — 数据结构
- stl的妙用 — 数据结构
- 贡献法+经典背包+费马小定理 — 动态规划
- 期望dp——用记忆化搜索 — 动态规划
- 一类哈密顿路径_回路为背景的状压dp — 动态规划
- 一类适合记忆化搜索的区间dp — 动态规划
- 最大子段和以及拓展 — 动态规划
- 最长上升子序列 — 动态规划
- 【模板】差分约束 — 图论
- 二分图 — 图论
- 欧拉路 — 图论
- 判负环——spfa — 图论
- 强连通分量 — 图论
- 图论一般题合集 — 图论
- 最短路计数 — 图论
- Codeforces Round 923 (Div. 3) — 图论
- SPFA — 图论
- 倍增求lca — 树上算法
- 常用树上函数 — 树上算法
- 树的直径——树形dp求法 — 树上算法
- 树的中心——树形dp_换根dp启蒙 — 树上算法
- 树链剖分——最近公共祖先(LCA) — 树上算法
- 树形dp刷题 — 树上算法
- 字符串border系列学习笔记 — 字符串
- 子序列自动机 — 字符串
- 最小表示法学习笔记 — 字符串
- KMP — 字符串
- Z函数与扩展KMP算法详解 - 以CF126B为例 — 字符串
- 20230723牛客round4D题:给出一个大数的所有约数,通过dfs用质因子反向构造约数 — 数学
- 矩阵乘法+快速幂 — 数学
- 矩阵快速幂 — 数学
- 快速乘 — 数学
- 曼哈顿距离与切比雪夫距离 — 数学
- 容斥原理简单题——需要动手画图才好想清楚 — 数学
- 数论分块 — 数学
- 2024牛客寒假算法基础集训营6 — 比赛题解
- 第 132 场周赛——质数小结论,并查集配Floyd — 比赛题解
- 牛客练习赛114 — 比赛题解
- 牛客小白月赛86 — 比赛题解
- 牛客周赛 Round 29 — 比赛题解
- 牛客周赛 Round 51 — 比赛题解
- 牛客周赛 Round 51题解 — 比赛题解
- 牛客周赛round35 — 比赛题解
- 牛客周赛round56 — 比赛题解
- AtCoder Beginner Contest 367 — 比赛题解
- Codeforces Round 294 (Div. 2) — 比赛题解
- Codeforces Round 790 (Div. 4) — 比赛题解
- Codeforces Round 886 (Div. 4)20230722 — 比赛题解
- Codeforces Round 895 (Div. 3) — 比赛题解
- Codeforces Round 898 (Div. 4) — 比赛题解
- Codeforces Round 937 (Div. 4) — 比赛题解
- Codeforces Round 944 (Div. 4) — 比赛题解
- Codeforces Round 964 (Div. 4) — 比赛题解
- starrycoding周赛 — 比赛题解
提高
- 倍增思想专题 — 基础算法
- 倍增专题 — 基础算法
- 二进制拆位 — 基础算法
- 分治 — 基础算法
- 贪心 — 基础算法
- bitset应用 — 基础算法
- bitset专题 — 基础算法
- log_trick — 基础算法
- 01trie特训2 — 数据结构
- 01trie专题 — 数据结构
- 笛卡尔树 — 数据结构
- 可撤销并查集 — 数据结构
- 可持久化线段树(主席树) — 数据结构
- 可持久化字典树(Trie) — 数据结构
- 离线+并查集 — 数据结构
- 字典树专题 — 数据结构
- 概率dp — 动态规划
- 枚举子集+预处理优化dp+贪心视角转化成可做dp — 动态规划
- CCF认证202109-4——之状态压缩dp加期望(记忆化搜索 — 动态规划
- dp优化 — 动态规划
- SOSdp — 动态规划
- 二分图最大匹配——网络流 — 图论
- 二分图最大权完美匹配 — 图论
- 三元环计数 — 图论
- 网络流 最大流 Dinic 算法 — 图论
- 最小费用组最大流——EK算法 — 图论
- 从启发式合并到Dsu on Tree — 树上算法
- 动态开点并查集+树上差分 — 树上算法
- 克鲁斯卡尔重构树 — 树上算法
- 树分治 点分治 — 树上算法
- 树哈希 — 树上算法
- 树链剖分 — 树上算法
- 树上背包 — 树上算法
- 树上换根dp — 树上算法
- 树上启发式合并 — 树上算法
- DFS序专题 — 树上算法
- xiaosaitmp — 树上算法
- 后缀数组SA — 字符串
- 马拉车学习笔记 — 字符串
- AC自动机 — 字符串
- Border树 — 字符串
- Trie三战含板子 — 字符串
- 高斯消元 — 数学
- 矩阵求逆 — 数学
- 线性基 — 数学
- 辛普森积分 — 数学
- gausstmp — 数学
- Kummer定理 — 数学
- Codeforces Round 960 (Div. 2)A-E — 比赛题解
- 牛客周赛ROUND38 — 比赛题解
- acwing148周赛 — 比赛题解
- AtCoder Beginner Contest 366 — 比赛题解
- Codeforces Round 918 (Div. 4) — 比赛题解
- Codeforces Round 940 (Div. 2) and CodeCraft-23 — 比赛题解
- Codeforces Round 960 (Div. 2)A E — 比赛题解
专题
- 经典数据结构问题 — 数据结构
- 树上路径问题—树形dp — 树上算法
- 虚树 — 树上算法
- 长链剖分 — 树上算法
- 后缀自动机SAM — 字符串
- 回文自动机PAM — 字符串
- CCPC2023秦皇岛 — 字符串
- 行列式与矩阵树定理 — 数学
待整理与训练记录
- 报告 — C++与基础
- max-element的min-element的基本用法 — C++与基础
- 二进制的妙用 — 基础算法
- 反悔贪心 — 基础算法
- 启发式分治 — 基础算法
- cdq分治 — 基础算法
- trick——1和2可达性系列 — 基础算法
- 基于凸函数 — 动态规划
- 决策单调性优化dp — 动态规划
- Atcoder Beginner Contest 373 — 动态规划
- wqs二分 — 动态规划
- 分层图 — 图论
- 点分治 — 树上算法
- 树上连通块计数 — 树上算法
- DFS order — 树上算法
- 匹配计数 — 数学
- AtCoder Beginner Contest 320 — 比赛题解
- AtCoder Beginner Contest 352 — 比赛题解
- Codeforces Round 888 (Div. 3) 补四个月前的一场题(早晚要还的 — 比赛题解
- 比赛注意事项——喵亦或鱼 — 训练记录
- 断更说明 — 训练记录
- 关于2024省赛的总结和我的当下问题和训练 — 训练记录
- 每天干了啥? — 训练记录
- 需要整理的模板 — 训练记录
- AAATo do list — 训练记录
- CSP认证模板 — 训练记录
- IEEE备战 — 训练记录
