|
|
@@ -1,8 +1,8 @@
|
|
|
-# CF 2400–2700 高阶扩展路线
|
|
|
+# 高阶扩展路线:Codeforces 2400–2700 与精选 AtCoder
|
|
|
|
|
|
## 扩展口径
|
|
|
|
|
|
-“每个课程”按 `主题.md` 的 11 个算法大主题计算;“历年真题”保持中国竞赛真题体系,不用国际平台替代。每个主题以 3 道 Codeforces 2400–2700 或思维强度相当的 AtCoder Grand Contest 题为主,只有转化彼此独立时才增至 4 道。已有详细讲解的题可计入。AGC 只在转化更典型时替换同质 CF 题,不作为降低难度或凑数量的来源。
|
|
|
+“每个课程”按 `主题.md` 的 11 个算法大主题计算;“历年真题”保持中国竞赛真题体系,不用国际平台替代。每个主题通常保留 3 道 Codeforces 2400–2700 或思维强度相当的 AtCoder 题,只有转化彼此独立时才增至 4 道。已有详细讲解的题计入名额。AtCoder 不是 CF 的附加题单:两者放在同一候选池内比较,优先留下考虑链更短而转化更深、能暴露算法失效边界的题。
|
|
|
|
|
|
高阶题不按“用了更复杂的数据结构”入选。若去掉模板名后只剩常规分层图、常规矩阵 Lazy 或直接 CRT,则降为练习;主池优先保留需要改变对象、补图/对偶、隐式图、参数化、状态压缩或反向建模的题。
|
|
|
|
|
|
@@ -17,44 +17,65 @@
|
|
|
7. 实现边界与去掉关键条件后的失效点;
|
|
|
8. 类 Python 核心伪代码和独立 C++17 附件。
|
|
|
|
|
|
-## 题目矩阵
|
|
|
-
|
|
|
-| 主题 | VJudge 查询 | 难度 | 核心转化 |
|
|
|
-|---|---|---:|---|
|
|
|
-| 欧拉路径 | CodeForces-508D | 2500 | 固定窗口重建 → 后缀点、窗口边、欧拉路径 |
|
|
|
-| 欧拉路径 | CodeForces-547D | 2600 | 坐标奇偶约束 → 边二染/欧拉定向 |
|
|
|
-| 欧拉路径 | CodeForces-527E | 2600 | 奇度与边数奇偶补边 → 欧拉回路交替定向 |
|
|
|
-| 欧拉路径 | CodeForces-1361C | 2500 | 二进制答案单调性 → 掩码点上的欧拉回路 |
|
|
|
-| 强/双连通 | CodeForces-962F | 2400 | “恰属一个环” → 点双块边数等于点数 |
|
|
|
-| 强/双连通 | CodeForces-467D | 2400 | 单词替换闭包 → SCC 缩点 DAG 反向 DP |
|
|
|
-| 强/双连通 | CodeForces-1344C | 2600 | 量词可达条件 → SCC 与缩点偏序结构 |
|
|
|
-| Bitset/位并行 | CodeForces-1097F | 2500 | gcd 多重集 → 整除 zeta 坐标上的 AND/XOR |
|
|
|
-| Bitset/位并行 | CodeForces-986C | 2500 | AND 为 0 → 补集子掩码图上的隐式遍历 |
|
|
|
-| Bitset/位并行 | CodeForces-1523D | 2400 | 高维公共 1 → 随机抽行与子集 DP |
|
|
|
-| KMP/Manacher | CodeForces-825F | 2400 | 子串压缩 → KMP 周期代价 + 区间 DP |
|
|
|
-| KMP/Manacher | CodeForces-1827C | 2600 | 回文后缀限制 → Manacher/哈希与 DP 跳转 |
|
|
|
-| KMP/Manacher | CodeForces-955D | 2600 | 模式拆成两段 → 正反前缀匹配拼接 |
|
|
|
-| 最短路 | CodeForces-1340C | 2400 | 周期通行规则 → 位置×绿灯时间的 0-1 BFS |
|
|
|
-| 最短路 | CodeForces-1442C | 2400 | 翻转代价指数增长 → 次数优先的分阶段最短路 |
|
|
|
-| 最短路 | CodeForces-1051F | 2400 | 图近似一棵树 → LCA 距离 + 少量特殊源 Dijkstra |
|
|
|
-| 生成树 | CodeForces-125E | 2400 | 指定特殊边数量 → 权值加参数的 WQS/Kruskal |
|
|
|
-| 生成树 | CodeForces-1408E | 2400 | 禁止彩虹环 → 二分关联图上的最大生成森林补集 |
|
|
|
-| 生成树 | CodeForces-1508C | 2500 | 隐式完全图 → 补图连通块与候选边削减 |
|
|
|
-| 二分图 | CodeForces-741C | 2600 | 三连续约束 → 补固定配对边后的偶环二染 |
|
|
|
-| 二分图 | CodeForces-1634E | 2400 | 多重出现公平分配 → 关联二分图欧拉交替 |
|
|
|
-| 二分图 | CodeForces-1009G | 2400 | 字典序贪心可行性 → Hall/最大流动态检查 |
|
|
|
-| Segment/Fenwick | CodeForces-484E | 2500 | 区间连续高值段 → 按阈值持久化版本 |
|
|
|
-| Segment/Fenwick | CodeForces-786C | 2400 | 对所有容量求最少分段 → 大小参数分治计算 |
|
|
|
-| Segment/Fenwick | CodeForces-1439C | 2600 | 单调区间购买 → 最大值剪枝与批量覆盖 |
|
|
|
-| Segment/Fenwick | CodeForces-1172F | 3300(灵活性) | 区间视为函数 → 合成函数摘要而非数值摘要 |
|
|
|
-| 基环树 | CodeForces-835F | 2500 | 基环树直径 → 挂树直径 + 环上单调队列 |
|
|
|
-| 基环树 | CodeForces-1270G | 2700 | 零和子集构造 → 函数图中取一个有向环 |
|
|
|
-| 基环树 | CodeForces-875F | 2500 | 最大权可选边 → 伪森林独立性上的 Kruskal 贪心 |
|
|
|
-| 高斯/CRT | CodeForces-724G | 2600 | 图上 XOR 路径全集 → 生成树势能与环线性基 |
|
|
|
-| 高斯/CRT | CodeForces-906D | 2700 | 非互质幂塔取模 → Euler 链与“大数标记” |
|
|
|
-| 高斯/CRT | CodeForces-959F | 2400 | 前缀 XOR 表示方案数 → 增量线性基与自由维数 |
|
|
|
-| 平衡树/序列结构 | CodeForces-455D | 2700 | 在线循环移位与频次 → 分块/隐式树结构选择 |
|
|
|
-| 平衡树/序列结构 | CodeForces-702F | 2800(灵活性) | 购买过程按能力分组 → 带 Lazy 的按值 Treap |
|
|
|
-| 平衡树/序列结构 | CodeForces-896C | 2600 | 随机区间操作 → 有序区间树的 split/assign |
|
|
|
-
|
|
|
-其中平衡树组会明确比较 FHQ/Splay、分块、ODT、线段树等接口:重点不是强迫所有题使用平衡树,而是学习从操作集合判断哪种动态序列结构真正合适。
|
|
|
+## 正式题目矩阵
|
|
|
+
|
|
|
+表中“已有”表示原课程已经完整讲解;“新增”表示本轮进入对应课程的正式高阶扩展。未进入本表的 `problems/4` 题目不是被忽略,而是在后面的取舍表中说明降级原因。
|
|
|
+
|
|
|
+| 主题 | 状态 | VJudge 查询 | 难度口径 | 独立思维任务 |
|
|
|
+|---|---|---|---:|---|
|
|
|
+| 欧拉路径 | 已有 | CodeForces-508D | 2500 | 固定窗口重建 → 后缀点、窗口边、欧拉路径 |
|
|
|
+| 欧拉路径 | 新增 | CodeForces-1361C | 2500 | 二进制答案单调性 → 掩码点上的欧拉回路 |
|
|
|
+| 欧拉路径 | 新增 | AtCoder-agc018_f | AGC 1700 分 | 两棵树的子树和 → 偶度辅助图上的欧拉定向 |
|
|
|
+| 欧拉路径 | 新增 | AtCoder-agc032_c | AGC 800 分 | “恰分成三条回路” → 压缩二度点后的拓扑分类 |
|
|
|
+| 强/双连通 | 已有 | CodeForces-962F | 2400 | “恰属一个环” → 点双块边数等于点数 |
|
|
|
+| 强/双连通 | 新增 | AtCoder-agc071_c | AGC 1100 分 | 任意目标度数 → 二分性、点双块与完备子集和 |
|
|
|
+| Bitset/位并行 | 已有 | CodeForces-1097F | 2500 | gcd 多重集 → 整除 zeta 坐标上的 AND/XOR |
|
|
|
+| Bitset/位并行 | 新增 | CodeForces-986C | 2500 | AND 为零 → 补集子掩码图的隐式遍历 |
|
|
|
+| KMP/Manacher | 已有 | CodeForces-17E | 2400 | 回文对计数 → 半径区间的差分扫描 |
|
|
|
+| KMP/Manacher | 新增 | AtCoder-qupc2018_h | 同强度构造题 | 给定回文半径反造字符串 → 等/不等约束图 |
|
|
|
+| 最短路/类最短路 | 新增 | CodeForces-1340C | 2400 | 周期通行规则 → 位置乘绿灯时间的 0-1 BFS |
|
|
|
+| 最短路/类最短路 | 新增 | AtCoder-agc056_c | AGC 900 分 | 平衡区间 → 前缀势能差分约束与 0-1 最短路 |
|
|
|
+| 最短路/类最短路 | 灵活性 | AtCoder-agc062_d | AGC 1100 分 | 二维行走 → 只保留离原点距离与部分和可达区间 |
|
|
|
+| 生成树 | 已有 | CodeForces-888G | 2600 | 完全图 XOR MST → 位分治与跨割最小异或 |
|
|
|
+| 生成树 | 新增 | CodeForces-1408E | 2400 | 禁止彩虹环 → 二分关联图最大生成森林的补集 |
|
|
|
+| 生成树 | 新增 | AtCoder-agc014_e | AGC 1400 分 | 两棵树的操作序 → 同色平行边驱动的同步缩点 |
|
|
|
+| 二分图 | 已有 | CodeForces-741C | 2600 | 三连续约束 → 补固定配对边后的偶环二染 |
|
|
|
+| 二分图 | 新增 | CodeForces-1634E | 2400 | 公平分配 → 值与序列关联图的欧拉交替 |
|
|
|
+| 二分图 | 新增 | AtCoder-agc025_d | AGC 800 分 | 两个禁距图 → 两次二染交叉成四个独立类 |
|
|
|
+| Segment/Fenwick | 新增 | AtCoder-agc023_e | AGC 1700 分 | 受限排列总逆序数 → 交换配对计数与带零因子 BIT |
|
|
|
+| Segment/Fenwick | 灵活性 | CodeForces-1172F | 3300 | 区间视为函数 → 合成函数摘要而非数值摘要 |
|
|
|
+| 基环树/函数图 | 新增 | CodeForces-835F | 2500 | 基环树直径 → 挂树直径与断环窗口的有序摘要 |
|
|
|
+| 基环树/函数图 | 新增 | CodeForces-1270G | 2700 | 零和子集构造 → 函数图中抽取有向环 |
|
|
|
+| 基环树/函数图 | 灵活性 | AtCoder-agc062_f | AGC 2000 分 | 牌堆阻塞 → 动态函数图剥叶与交错环 |
|
|
|
+| 高斯/CRT | 新增 | CodeForces-724G | 2600 | 图上 XOR 路径全集 → 树势能与环空间 |
|
|
|
+| 高斯/CRT | 新增 | AtCoder-abc366_g | ABC 600 分 | 邻点 XOR 条件 → 邻接矩阵零空间覆盖 |
|
|
|
+| 高斯/CRT | 新增 | AtCoder-agc050_e | AGC 1800 分 | 三周期相交 → 非互质 CRT、素因子指数削减与事件扫描 |
|
|
|
+| 平衡树/序列结构 | 已有 | CSES-2072/2073/2074 | 课程主线 | split/merge、翻转与剪贴接口 |
|
|
|
+| 平衡树/序列结构 | 新增 | CodeForces-896C | 2600 | 随机数据契约 → 有序区间树及其失效边界 |
|
|
|
+
|
|
|
+其中平衡树组不为凑数保留 `455D`、`702F`:前者本质更接近分块,后者虽能用按值 Treap,但核心考虑链与本课程主线连接较弱。该组用 `896C` 专门讨论“输入随机”何时是算法正确性/复杂度契约,并明确 ODT 不是平衡树的替代模板。
|
|
|
+
|
|
|
+## `problems/4` 中降为训练或旁支的题
|
|
|
+
|
|
|
+| 题目 | 归档位置 | 不占正式名额的原因 |
|
|
|
+|---|---|---|
|
|
|
+| CodeForces-527E | 欧拉路径课后训练 | 奇度补边、边数补偶再交替定向很完整,但核心仍是标准欧拉修补 |
|
|
|
+| CodeForces-547D | 欧拉路径课后训练 | 坐标点建边很漂亮,但与 `1634E` 的“二分关联图 + 欧拉交替”任务重叠 |
|
|
|
+| CodeForces-467D | SCC 课后训练 | SCC 缩点后做 DAG DP,适合巩固,不足以占高阶转化名额 |
|
|
|
+| CodeForces-825F | KMP 课后训练 | 周期代价加区间 DP 是良好组合题,但建模较直接 |
|
|
|
+| CodeForces-955D | KMP 课后训练 | 正反匹配拆成两段值得练习,但考虑链短于正式两题 |
|
|
|
+| CodeForces-1051F | 最短路课后训练 | “树加少量非树边”后从特殊点跑 Dijkstra 是常用降维套路 |
|
|
|
+| CodeForces-125E | 生成树选学 | WQS/Kruskal 有价值,但更偏参数化模板,本轮让位给补图和同步缩点 |
|
|
|
+| AtCoder-agc064_b | 生成树衔接题 | 森林先满足局部颜色、再补成树很清楚,适合作为正式高阶题前的构造台阶 |
|
|
|
+| CodeForces-959F | 高斯消元课后训练 | 增量线性基加自由维计数较标准,让位给“零空间覆盖” |
|
|
|
+| CodeForces-1344C | SCC 二次筛选池 | 量词转偏序很强,但本轮与点双块的完整闭环相比,尚未完成可对拍实现,不标“新增” |
|
|
|
+| CodeForces-1523D | Bitset 二次筛选池 | 随机抽行 + 子集 zeta 有价值,但随机正确率契约需单独成课,先保留 `986C` 的确定性隐式图转化 |
|
|
|
+| CodeForces-1827C | Manacher 二次筛选池 | 题目很强,但与 `qupc2018_h` 同轮加入会让回文半径主题跨度过大,待补中间台阶 |
|
|
|
+| CodeForces-1442C | 最短路二次筛选池 | 指数代价的分阶段序巧妙;本轮保留状态压缩更能直接承接主线的 `1340C` |
|
|
|
+| CodeForces-1508C | 生成树二次筛选池 | 补图候选边削减质量高,但与 `1408E`、`agc014_e` 同时正式化会超过主题默认题量 |
|
|
|
+| CodeForces-1009G | 二分图二次筛选池 | 动态 Hall 条件实现门槛高且依赖前置不足,不能用结论式题解硬塞 |
|
|
|
+| CodeForces-1439C | Segment 课后选学 | 数据结构实现精彩,但核心更接近单调段批量覆盖;本轮让位给交换对合驱动的 `agc023_e` |
|
|
|
+| CodeForces-875F | 函数图二次筛选池 | 伪森林独立性上的 Kruskal 值得保留,但与 `835F` 的环上最优化、`1270G` 的代数构造相比独立收获略弱 |
|
|
|
+| CodeForces-906D | CRT 二次筛选池 | 非互质幂塔需要 Euler 链与“大数标记”完整前置;本轮 `agc050_e` 已承担非互质周期压缩任务 |
|
|
|
+
|
|
|
+`AtCoder-agc062_d` 与 `AtCoder-agc062_f` 都保留,但明确标为灵活性实验室:它们的价值分别是“从二维运动删到一维半径状态”和“从操作过程反建动态函数图”,不作为后续章节硬前置。
|