课程 · 题单汇总

题单汇总

53 章的配套练习摊在一页上:共 273 条,去重后 223 道, 其中 39 道在不止一章里出现过。

题目来源:luogu.com.cn去重后 223 道跨章重复 39 道
★ 看到「第 X 章也用这道题」时该怎么做

跨章重复是有意安排的:同一道题,第 11 章用归并排序做、第 38 章用树状数组再做一遍; 第 20 章用贪心做错、第 23 章用 DP 做对。第二次遇到时不要翻上次的代码 —— 用新学的方法从头写一遍, 然后拿上一次那份当对拍的标准答案。这正是这个站每一章都在教的做法。

⚠ 先写暴力,再交题

这些题绝大多数是洛谷的题,交上去只会告诉你「对 / 不对」。 真正能查出问题的是对拍:先写一份慢但肯定对的暴力,再写正解, 用随机数据比对 —— 每一章的「★ 对拍」那一步给的就是现成的架子。

筛一下共 273 条
  • 7洛谷 P1147 连续自然数和解析 → 滑动窗口模板题。连续自然数天然是正数,前提刚好满足
  • 7洛谷 P1102 A-B 数对解析 → ★ 第 8 章也用这道题 —— 再遇到时换新方法重做,别抄上次的 排序 + 双指针(或二分)。注意重复元素 —— 这一章第 12 步刚踩过的坑
  • 7洛谷 P1638 逛画展解析 → 滑动窗口 + 计数数组,求「包含全部种类的最短区间」。经典变形
  • 7洛谷 P1873 砍树解析 → ★ 第 8、9 章也用这道题 —— 再遇到时换新方法重做,别抄上次的 这题其实是二分答案(下一章)。先自己想想能不能用双指针 —— 想清楚「为什么不能」,比会做还有价值
  • 8洛谷 P2249 查找解析 → lower_bound 模板题。先手写一遍,再用 STL 写一遍,对比结果
  • 8洛谷 P1102 A-B 数对解析 → ★ 第 7 章也用这道题 —— 再遇到时换新方法重做,别抄上次的 上一章用双指针做过,现在用「排序 + 两次二分」再做一遍 —— 这题正好是 U-L 的用武之地
  • 8洛谷 P1873 砍树解析 → ★ 第 7、9 章也用这道题 —— 再遇到时换新方法重做,别抄上次的 二分答案。做不出来很正常,下一章就讲它 —— 但可以先自己试试
  • 8洛谷 P1024 一元三次方程求解解析 → ★ 第 9 章也用这道题 —— 再遇到时换新方法重做,别抄上次的 NOIP2001。实数二分,注意精度和循环终止条件(不能用 l < r)
  • 11洛谷 P1908 逆序对解析 → ★ 第 38 章也用这道题 —— 再遇到时换新方法重做,别抄上次的 本章原题,模板。注意开 long long
  • 11洛谷 P1966 火柴排队解析 → ★ 第 52 章也用这道题 —— 再遇到时换新方法重做,别抄上次的 NOIP2013。要先想明白「答案等价于求某个排列的逆序对数」,转化是难点
  • 11洛谷 P1177 排序解析 → ★ 第 10、37、45 章也用这道题 —— 再遇到时换新方法重做,别抄上次的 上一章那道模板题,这次专门用手写归并交一遍
  • 11洛谷 P1115 最大子段和解析 → ★ 第 12、45 章也用这道题 —— 再遇到时换新方法重做,别抄上次的 先用 O(n) 的做法过掉,再试着用分治写一遍 —— 练「跨越中点的那部分怎么算」
  • 15洛谷 P1332 血色先锋队解析 → ★ 第 14 章也用这道题 —— 再遇到时换新方法重做,别抄上次的 多源 BFS 模板题,本章前半场的原题
  • 15洛谷 P1443 马的遍历解析 → ★ 第 14、30 章也用这道题 —— 再遇到时换新方法重做,别抄上次的 单源 BFS,但邻居有 8 个方向。先把「邻居是什么」想清楚
  • 15洛谷 P1379 八数码难题解析 → ★ 第 18 章也用这道题 —— 再遇到时换新方法重做,别抄上次的 本章后半场原题。BFS 能过,学完第 18 章可以回来用双向 BFS 再写一遍
  • 15洛谷 P1135 奇怪的电梯解析 → NOIP2007。状态是「在第几层」,边是「上 K[i] 层或下 K[i] 层」—— 典型的状态图 BFS
  • 17洛谷 P1216 数字三角形解析 → ★ 第 21 章也用这道题 —— 再遇到时换新方法重做,别抄上次的 IOI1994。本章原题,先交记忆化版,再交递推版
  • 17洛谷 P1002 过河卒解析 → ★ 第 21 章也用这道题 —— 再遇到时换新方法重做,别抄上次的 NOIP2002。方案数计数,把 max 换成 +
  • 17洛谷 P1434 滑雪解析 → 记忆化搜索的经典题。这题用递推很难写,用记忆化很自然 —— 体会一下
  • 17洛谷 P1255 数楼梯解析 → ★ 第 1、2、21、44 章也用这道题 —— 再遇到时换新方法重做,别抄上次的 第 1 章那道会 TLE 的题,现在回去用记忆化解决它
  • 19洛谷 P1223 排队接水解析 → 本章原题。注意它要输出的是排队顺序和平均等待时间(保留两位小数),比本章多一步输出格式
  • 19洛谷 P1803 凌乱的yyy / 线段覆盖解析 → 本章第二道题的原题,端点重合的约定也和这里一致
  • 19洛谷 P2240 部分背包问题解析 → ★ 第 20 章也用这道题 —— 再遇到时换新方法重做,别抄上次的 按「单位价值」排序 —— 排序关键字是算出来的,不是直接给的。想清楚交换论证为什么在这里成立(而在 01 背包里不成立,见第 23 章)
  • 19洛谷 P1094 纪念品分组解析 → NOIP2007。排序之后用第 7 章的对撞双指针,最贵的配最便宜的。交换论证要动点脑筋
  • 19洛谷 P1090 合并果子解析 → ★ 第 20、37 章也用这道题 —— 再遇到时换新方法重做,别抄上次的 NOIP2004。每次合并最小的两堆 —— 但一次排序不够用,因为合并出来的新堆还要重新参与排序。这题在等第 37 章的堆,先用 sort 硬做也能过
  • 20洛谷 P1080 国王游戏解析 → ★ 第 44 章也用这道题 —— 再遇到时换新方法重做,别抄上次的 NOIP2012。交换论证的教科书题:按 a×b 排序。先自己推交换论证,再看题解。(要写高精度,可以先只做证明部分)
  • 20洛谷 P1048 采药解析 → ★ 第 23 章也用这道题 —— 再遇到时换新方法重做,别抄上次的 NOIP2005。就是本章的 01 背包 —— 故意先用性价比贪心交一发,看着它 WA,再学第 23 章的 DP。这一发 WA 值得挨
  • 20洛谷 P2240 部分背包问题解析 → ★ 第 19 章也用这道题 —— 再遇到时换新方法重做,别抄上次的 同一个贪心,这里是对的。和上一题对照着做,本章第 9 步那段论证会刻进脑子里
  • 20洛谷 P5019 铺设道路解析 → NOIP2018。贪心是对的,但你得说得出为什么。先写暴力对拍,再想证明
  • 20洛谷 P1090 合并果子解析 → ★ 第 19、37 章也用这道题 —— 再遇到时换新方法重做,别抄上次的 NOIP2004。「每次合并最小的两堆」是对的,但「一次排序后顺着合并」是错的 —— 又一个「差一点点就错」的例子。第 37 章会用堆重做它
  • 21洛谷 P1216 数字三角形解析 → ★ 第 17 章也用这道题 —— 再遇到时换新方法重做,别抄上次的 IOI1994。本章原题,先交记忆化版再交递推版,对比一下提交记录里的用时和内存
  • 21洛谷 P1255 数楼梯解析 → ★ 第 1、2、17、44 章也用这道题 —— 再遇到时换新方法重做,别抄上次的 爬楼梯的原题,但 n 到 5000 —— 答案上千位,必须写高精度。递推部分你已经会了,这题练的是高精度加法
  • 21洛谷 P1002 过河卒解析 → ★ 第 17 章也用这道题 —— 再遇到时换新方法重做,别抄上次的 NOIP2002。二维递推,把 max 换成 +(计数)。注意马的控制点和边界,以及 long long
  • 21洛谷 P1044 栈解析 → ★ 第 1、43 章也用这道题 —— 再遇到时换新方法重做,别抄上次的 NOIP2003。卡特兰数。状态不好设 —— 先老实写搜索,再从搜索里找状态,正是本章第 13 步那套流程
  • 21洛谷 P1077 摆花解析 → ★ 第 24 章也用这道题 —— 再遇到时换新方法重做,别抄上次的 NOIP2012。状态要开二维(第几种花、已经摆了几盆),是通向第 23 章背包的过渡题
  • 23洛谷 P1048 采药解析 → ★ 第 20 章也用这道题 —— 再遇到时换新方法重做,别抄上次的 NOIP2005。最标准的 01 背包模板题,时间就是重量、价值就是价值。先交二维再交一维,对比一下内存
  • 23洛谷 P1049 装箱问题解析 → NOIP2001。只有体积没有价值 —— 把体积同时当价值就行。这一步转化是背包题的第一道门槛
  • 23洛谷 P1164 小A点菜解析 → 求「恰好花完」的方案数。本章第 12 步那个套路的直接应用:初值 f[0] = 1,其余 0,转移从 max 换成加法
  • 23洛谷 P1060 开心的金明解析 → NOIP2006。价值 = 价格 × 重要度,读懂题就是模板。适合用来确认自己是真的会了
  • 23洛谷 P2925 干草出售解析 → USACO。「恰好装满」的味道,而且数据范围大到必须用一维 —— 二维会 MLE
  • 23洛谷 P1877 音量调节解析 → 状态是「能不能达到某个音量」(布尔背包)。转移变成 f[j] |= f[j-w],倒序的道理一模一样
  • 24洛谷 P1616 疯狂的采药解析 → 完全背包裸题,就是第 23 章 P1048 的完全背包版。两题对着交一遍,方向的差别一辈子忘不了
  • 24洛谷 P1853 投资的最大效益解析 → 完全背包 + 多年滚动。每年跑一次完全背包,本金滚到下一年 —— 「DP 套在循环里」的入门题
  • 24洛谷 P1776 宝物筛选解析 → ★ 第 35 章也用这道题 —— 再遇到时换新方法重做,别抄上次的 多重背包模板题,n·k 大到不拆分必 TLE。二进制拆分的标准练习
  • 24洛谷 P2347 砝码称重解析 → NOIP1996。布尔多重背包(能不能称出某个重量),转移是 f[j] |= f[j-w]。数据小,拆不拆都能过 —— 正好拿来验证「拆完答案不变」
  • 24洛谷 P1077 摆花解析 → ★ 第 21 章也用这道题 —— 再遇到时换新方法重做,别抄上次的 NOIP2012。多重背包的方案数版本:max 换成加法、初值 f[0]=1(第 23 章第 12 步那个套路)
  • 24洛谷 P5365 英雄联盟解析 → 进阶。要先看出「买 k 个皮肤的花费」是分组背包/多重的味道,而且答案要开 long long。适合确认自己是真的会了
  • 25洛谷 P1855 榨取kkksc03解析 → 二维费用裸题(钱和时间两个上限)。注意两个上限都只有 200 —— 这就是本章第 7 步说的那个信号
  • 25洛谷 P1507 NASA的食物计划解析 → 同样是二维费用(体积和质量),换了张皮。两题对着写一遍,「多一层循环」就再也忘不了
  • 25洛谷 P1757 通天之分组背包解析 → 分组背包模板题。输入是「每件物品自带组号」,先归类再跑 —— 正好练一遍本章那个输入格式的转换
  • 25洛谷 P1064 金明的预算方案解析 → NOIP2006。主件 + 附件,看上去是新题型,其实是分组背包:把「主件单买 / 主件+附件1 / 主件+附件2 / 主件+两个附件」当成一组里的四件互斥物品。★ 这题是「看出它是分组背包」的经典训练
  • 25洛谷 P1541 乌龟棋解析 → NOIP2010。四种卡片各用了几张 → 四维费用,也就是四层循环。本章那句「多一维就多一层」的极致版本
  • 25洛谷 P5322 排兵布阵解析 → BJOI2019。进阶:先想清楚「对第 i 座城堡派 x 个兵能赢几个对手」,再把每座城堡的所有 x 当成一组。适合确认自己是真的会了
  • 27洛谷 P1352 没有上司的舞会解析 → ★ 第 52 章也用这道题 —— 再遇到时换新方法重做,别抄上次的 本章原题。注意它的输入多一行 0 0 结尾,而且根同样要自己找
  • 27洛谷 P2016 战略游戏解析 → ★ 最小点覆盖:选最少的点,让每条边至少有一个端点被选。和本章是一对「反着的」题 —— 转移里那个 max 变成 min,f[u][1] 那一项也要跟着变。写完对比一下两份代码,只差几个字
  • 27洛谷 P1122 最大子树和解析 → 状态只有一维(这题不需要「选不选」),但正好练「有负数时该不该要这个儿子」。提示:max(0, f[v])
  • 27洛谷 P2015 二叉苹果树解析 → ★ 树形背包:状态是 f[u][j] = 在 u 的子树里保留 j 条边。它把本章的树形 DP 和第 23 章的背包缝在了一起,是最经典的进阶题
  • 27洛谷 P1273 有线电视网解析 → 进阶的树形背包(分组背包版),正好回收第 25 章。想清楚「每个儿子是一组」这句话
  • 27洛谷 P3478 [POI2008] STA-Station解析 → 换根 DP 入门:先求出以 1 为根的答案,再 O(1) 推到每个点当根。它是树形 DP 的下一站,值得提前看一眼
  • 29洛谷 B3643 图的存储解析 → 本章的模板题:同时输出邻接矩阵和邻接表。写完对着本章三份代码检查一遍
  • 29洛谷 P5318 【深基18.例3】查找文献解析 → ★ 第 30 章也用这道题 —— 再遇到时换新方法重做,别抄上次的 ★ 建图 + DFS/BFS,而且要求邻居按编号从小到大访问 —— 正好逼你想清楚「前向星的邻居是倒序出来的」这件事
  • 29洛谷 P3916 图的遍历解析 → ★ 第 30 章也用这道题 —— 再遇到时换新方法重做,别抄上次的 ★ 反向建图的经典入门题。它会让你真正理解「有向图存一遍 vs 存两遍」的区别
  • 29洛谷 P1113 杂务解析 → ★ 第 31 章也用这道题 —— 再遇到时换新方法重做,别抄上次的 建图 + 拓扑序 DP(第 31 章的预习)。这题的边是有向的,正好和本章的无向图对照着写
  • 29洛谷 P2853 [USACO06DEC] Cow Picnic解析 → 多次 DFS,n 和 m 都不大 —— 适合拿三种存法各写一遍,实测比一比
  • 29洛谷 P1330 封锁阳光大学解析 → 进阶:二分图判定。⚠ 题面只保证「没有重边」——「一个字都没说没有自环」,而一个自环就必然 Impossible;另外图也不保证连通。解析页把这两件事各量了一遍(重边实测零影响)
  • 30洛谷 P5318 【深基18.例3】查找文献解析 → ★ 第 29 章也用这道题 —— 再遇到时换新方法重做,别抄上次的 本章的模板题:一张图上分别跑 DFS 和 BFS。要求邻居按编号从小到大 —— 正好逼你想清楚建图之后要不要排序
  • 30洛谷 P3916 图的遍历解析 → ★ 第 29 章也用这道题 —— 再遇到时换新方法重做,别抄上次的 ★ 反向建图 + 从大到小跑 DFS。做完你会真正明白「有向图存一遍 vs 存两遍」
  • 30洛谷 B3625 迷宫寻路解析 → 网格连通性 —— 故意留一道网格题,用本章的图版思路再做一遍,对照第 13 章
  • 30洛谷 P1443 马的遍历解析 → ★ 第 14、15 章也用这道题 —— 再遇到时换新方法重做,别抄上次的 ★ BFS 求最短步数,但「邻居」是马走日的 8 个方向 —— 这一章那句话的最好注脚:换的只是邻居
  • 30洛谷 P1141 01迷宫解析 → ★ 连通块 + 记住每块的大小。多次询问,一次染色全部答完 —— 「连通块编号」这个技巧非常常用
  • 30洛谷 P1162 填涂颜色解析 → ★ 第 13 章也用这道题 —— 再遇到时换新方法重做,别抄上次的 进阶:从外圈往里灌水(补集思维)。它会逼你想清楚「哪些点该当起点」
  • 38洛谷 P3374 【模板】树状数组 1解析 → ★ 第 39 章也用这道题 —— 再遇到时换新方法重做,别抄上次的 本章那道题的原题(单点加 + 区间和)。先合上页面默写 lowbit / add / sum 三段再交,别翻回第 7 步
  • 38洛谷 P3368 【模板】树状数组 2解析 → ★ 反过来:区间加 + 单点查。做法是在「差分数组」上建树状数组 —— 第 6 章那对逆运算在这儿又用上了一次
  • 38洛谷 P2367 语文成绩解析 → ★ 第 6 章也用这道题 —— 再遇到时换新方法重做,别抄上次的 第 6 章用纯差分做过(那时数组不再变,最后统一还原一次)。这道题边改边问,才非上树状数组不可 —— 两份代码摆在一起,多出来的正是「可修改」这三个字
  • 38洛谷 P1908 逆序对解析 → ★ 第 11 章也用这道题 —— 再遇到时换新方法重做,别抄上次的 ★ 第 11 章用归并做过,本章第 13 步用树状数组重做了一遍。交一份树状数组版,然后和你第 11 章那份对拍 —— 生成器都不用换
  • 38洛谷 P1972 [SDOI2009] HH 的项链解析 → ★★ 难度上一个台阶:询问离线、按右端点排序,每种颜色只在「最后一次出现的位置」记 1。想明白「为什么排完序就能一遍扫完」,树状数组才算真的会用
  • 39洛谷 P3372 【模板】线段树 1解析 → 本章那道题的原题(区间加 + 区间和)。动手前先把 lz[o] 的含义一字不差说出来 —— 主语是「儿子们」
  • 39洛谷 P1531 I Hate It解析 → ★ 单点改 + 区间最大值 —— 自测清单里「只需改哪两处」的实测场。改完回头看:pushup 换了,而 apply 里那个「乘区间长度」为什么就没了
  • 39洛谷 P3374 【模板】树状数组 1解析 → ★ 第 38 章也用这道题 —— 再遇到时换新方法重做,别抄上次的 ★ 第 38 章交过的那道,这次用线段树再交一遍。本章第 13 步已经把两份代码摆在一起了,但亲手交两遍才有体感:行数、耗时、以及「哪一份改成区间最值只要动两处」
  • 39洛谷 P1198 [JSOI2008] 最大数解析 → ★ 强制在线(上一次询问的结果参与下一次输入),离线排序那条路被堵死了。顺带练「只往末尾插入」的建树写法
  • 39洛谷 P3373 【模板】线段树 2解析 → ★★ 加法和乘法两个懒标记,难点全在下推顺序:先乘后加,而且乘的时候加标记要跟着一起乘。做完这道,「lz 的主语是儿子」才算刻进去
  • 40洛谷 P1029 [NOIP 2001 普及组] 最大公约数和最小公倍数问题解析 → 设 P = x₀·a、Q = x₀·b,则 a·b = y₀/x₀ 且 gcd(a,b) = 1,枚举因子即可。⚠ 先判 y₀ % x₀ 是不是 0 —— 这是本章第 7 步那半章坑的同类
  • 40洛谷 P1888 三角函数解析 → 五行题:★ 要的是「最短边 / 斜边」(较小锐角对着最短边,而 sin = 对边/斜边),再用 gcd 约分。⚠⚠ 这里原来写的是「最小两边之比」—— 那是 tan 不是 sin,2026-09-01 照样例 3 5 4 → 3/5 订正(详见解析页)
  • 40洛谷 P1372 又是毕业季I解析 → ★ 答案是 n/k,但要说得出为什么 —— 提示:取 d、2d、…、kd,需要 kd ≤ n。练的是「看出它是 gcd」这一步,不是 gcd 本身
  • 40洛谷 P2651 添加括号III解析 → ★ 除法表达式加括号能否变成整数:a₂ 必在分母、a₁ 必在分子,其余都能挪到分子。约分之后判整除 —— gcd 在这里是化简工具,不是答案
  • 40洛谷 P2152 [SDOI2009] SuperGCD解析 → ★★ 高精度 gcd。取模在高精度下太贵,得换成「更相减损 + 提取因子 2」的二进制 gcd。本章第 9 步那条「每两步至少减半」的界,在这里换了一种形式再出现一次
  • 41洛谷 P3383 【模板】线性筛素数解析 → 本章那道题的原题。默写 6 行线性筛,那句 break 保证了什么,先说出来再交
  • 41洛谷 P1075 [NOIP 2012 普及组] 质因数分解解析 → n ≤ 2×10⁹ 且是两个质数之积 —— 筛不动,只能试除,而且试到 √n 就够。本章第 3 步那句「为什么只要试到 √x」在这儿是唯一的解法来源
  • 41洛谷 P1217 [USACO1.5] 回文质数解析 → ★ 上界 10⁸,直接筛会爆内存。正解要反过来:先造回文数再判质数(偶数位的回文数必被 11 整除,可以整段跳过)。练的是「筛不是万能的」
  • 41洛谷 P1865 A % B Problem解析 → 筛 + 前缀和:cnt[i] 记 1..i 有几个质数,区间一减就出来。第 6 章那把尺子在这儿原样再用一次。⚠ 越界要输出 Crossing the line
  • 41洛谷 P3912 素数个数解析 → ★ n 到 10⁸。本章第 10 步那个实测就是为这道题准备的 —— ⚠ 但那张表量的是 n = 10⁷,到 10⁸ 上「线性筛反而赢 2.27 倍」(95 MB 的表装不进缓存);⇒ 交之前先想清楚你要用哪一种筛,以及为什么
  • 42洛谷 P1226 【模板】快速幂||取余运算解析 → ★ 第 12、46 章也用这道题 —— 再遇到时换新方法重做,别抄上次的 ★ 第 12 章分治时见过它一次,那时它只是「分治的一个例子」;这一章它是主角。默写五行。⚠ 而这一章列的六个错法,代进这道题的范围之后有三个根本发生不了(含初值那条:它的 p ≥ 2)—— 解析页把每一条都算了一遍
  • 42洛谷 P1965 [NOIP 2013 提高组] 转圈游戏解析 → 每轮位移 m,k 轮之后落在 (x + m·10^k) mod n —— 一次快速幂。练的是「把题目翻译成一个幂」这一步
  • 42洛谷 P1082 [NOIP 2012 提高组] 同余方程解析 → ★ 求 ax ≡ 1 (mod b) 的最小正整数解,也就是逆元。b 不保证是质数,所以要用 exgcd(第 40 章第 13 步那份)。这道题正好卡在第 40 和第 43 章中间,先做它,第 43 章会顺很多
  • 42洛谷 P3390 【模板】矩阵快速幂解析 → ★ 把「乘」换成矩阵乘,五行骨架一个字不用改 —— 这才是快速幂真正的威力:它要的只是结合律。k ≤ 10¹²,正好用上本章第 4 步「次数只和 b 有关」那条
  • 42洛谷 P1045 [NOIP 2003 普及组] 麦森数解析 → ★★ 求 2^P−1 的位数和末 500 位。位数用对数算(不是快速幂),末 500 位用高精度快速幂 —— 同一道题里「取模」被换成了「只留末 500 位」,而那五行照样成立
  • 43洛谷 P1313 [NOIP 2011 提高组] 计算系数解析 → (ax+by)^k 里 x^n·y^m 的系数 = C(k,n)·a^n·b^m。模数 10007 是质数、k ≤ 1000 < 10007 —— 本章第 6 步那个「p > n」的前提在这里是满足的,可以放心用逆元那套,顺带把第 42 章的快速幂用上
  • 43洛谷 P1044 [NOIP 2003 普及组] 栈解析 → ★ 第 1、21 章也用这道题 —— 再遇到时换新方法重做,别抄上次的 ★ 卡特兰数 C(2n,n)/(n+1)。第 1 章用递归数过它、第 21 章用 DP 递推过它,这一章给出闭形式 —— 三种做法摆在一起,是整条路线最完整的一次回看。n ≤ 18 不用取模,正好看清楚原始的样子
  • 43洛谷 P2822 [NOIP 2016 提高组] 组合数问题解析 → ★ 问 C(i,j) 里有多少个被 k 整除。用第 3 步那份杨辉三角边推边对 k 取模、判 0,再套一层二维前缀和(第 6 章)。⚠ 这道题恰恰不能用逆元那套 —— k 不保证是质数,想清楚为什么
  • 43洛谷 P3807 【模板】卢卡斯定理解析 → ★★ 本章第 6 步说「这套公式要求 p > n,p ≤ n 时会全错」,而这道题的 p ≤ 10⁵、n+m 可以更大 —— 它就是那个失效的场。Lucas 把 n 和 m 按 p 进制拆开,每一位都退回到 p > n 的情形。先跑一遍本章的 smallP.cpp 看它是怎么错的,再来读 Lucas 会顺很多
  • 45洛谷 P1115 最大子段和解析 → ★ 第 11、12 章也用这道题 —— 再遇到时换新方法重做,别抄上次的 ★ 就是这一章那道题的原题。交之前先想清楚:全是负数那组数据,你的初值挡不挡得住
  • 45洛谷 P1719 最大加权矩形解析 → ★ 第 6 章也用这道题 —— 再遇到时换新方法重做,别抄上次的 ★★ 二维版:枚举上下边界,把每一列压成一个数,就退化成这一章这道题。n ≤ 120 —— 先按第 6 步那张表估一估 O(n³) 行不行
  • 45洛谷 P1786 帮贡排序解析 → ★ 数据小得离谱(n ≤ 110),是专门用来练「先看范围再决定写多复杂」的:顶格冒泡也只要 10 微秒,余量九万倍 ⇒ 排序怎么写都能过。⚠ 而它真正的关卡一个都不在算法上,全在读题(谁参加重排 / 并列时按输入顺序 / 名次是 1 基而下标是 0 基 / 职位的高低不是字典序)
  • 45洛谷 P1746 离开中山路解析 → ★ 第 14 章也用这道题 —— 再遇到时换新方法重做,别抄上次的 ⚠ 1000×1000 的网格 = 10⁶ 个点。按这一章的表估一下就知道:必须 O(n²) 的 BFS,DFS 找最短路会挂(第 14 章)
  • 45洛谷 P1996 约瑟夫问题解析 → ★ 第 5 章也用这道题 —— 再遇到时换新方法重做,别抄上次的 第 8 章那道题。这里换个角度看它:n ≤ 100 时怎么写都行,如果 n 是 10⁶ 呢?先估,再决定用不用链表
  • 45洛谷 P1177 【模板】排序解析 → ★ 第 10、11、37 章也用这道题 —— 再遇到时换新方法重做,别抄上次的 ★ n ≤ 10⁵ 而且卡了常数:拿它试一次「O(n²) 排序到底能不能过」—— 估算说不能,交一发看看估得准不准
  • 46洛谷 P1469 找筷子解析 → ★ 就是这一章那道题的原题。⚠ 数据量大,记得按第 45 章那节加读入优化
  • 46洛谷 P1100 高低位交换解析 → ★ 把 32 位数的高 16 位和低 16 位换个位置。两行搞定:(x >> 16) | (x << 16) —— ⚠ 想清楚这里为什么必须用 unsigned
  • 46洛谷 P5704 字母转换解析 → 大小写转换其实就是翻转第 5 位('a' 和 'A' 只差 32 = 1 << 5)。一道让你相信「字符也是整数」的小题。⚠ 这一条原来写的是「B2143 转换字母」—— 而洛谷 B2143 是「进制转换」,题号和题名都错了,2026-09-06 订正
  • 46洛谷 P1582 倒水解析 → ★★ 答案就是「popcount(n) 怎么降到不超过 k」。这道题是 popcount 和 lowbit 的第一次正式登场
  • 46洛谷 P2114 [NOI2014] 起床困难综合症解析 → ⚠ 提高组:每一位互相独立,所以可以一位一位地贪心决定填 0 还是 1。★ 「按位拆开」是位运算最重要的一个套路
  • 46洛谷 P1226 【模板】快速幂解析 → ★ 第 12、42 章也用这道题 —— 再遇到时换新方法重做,别抄上次的 第 42 章那道题。现在回去看它的 b & 1 和 b >>= 1,应该一眼就明白了。★ 解析页量了另一件事:第 42 章列的六个错法,有三个被这道题的数据范围挡死了
  • 49洛谷 P3370 【模板】字符串哈希解析 → ★ 就是「N 个串里有几个不同的」—— 正好是本章第 8 步那第三笔账(两两比)的现场,单模数在这道题上是真的会被卡
  • 49洛谷 P3375 【模板】KMP解析 → ★ 第 48 章也用这道题 —— 再遇到时换新方法重做,别抄上次的 第 48 章那道题。用哈希再写一遍,体会一下「同一道题两条路」
  • 49洛谷 P1368 工艺解析 → ⚠ 提高组(★ 2026-09-09 订正:这道题在洛谷现在叫「工艺」,不叫「【模板】最小表示法」了 —— 新模板题是 P13270):哈希不是正解,但拿哈希 + 二分能写出一个好懂的版本,正好练「二分 + 哈希」这个套路
  • 49洛谷 P4551 最长异或路径解析 → ★ 第 50 章也用这道题 —— 再遇到时换新方法重做,别抄上次的 ⚠ 提高组:它其实是第 50 章 01-Trie 的题。放在这儿是想说明「把东西变成一个数」之后,路还能往哪儿走
  • 49洛谷 P1381 单词背诵解析 → 哈希表 + 尺取。★ 这里用的是 unordered_map 那种哈希,和本章的字符串哈希是两件事 —— 分清楚它们
  • 49洛谷 P2957 [USACO09OCT] Barn Echoes解析 → 入门难度:求两个串的最长「首尾重叠」。数据很小,正好拿来练手写哈希(也正好说明小数据上什么写法都过)
  • 52洛谷 P3128 [USACO15DEC] Max Flow P解析 → ★ 第 51 章也用这道题 —— 再遇到时换新方法重做,别抄上次的 ★ 就是这一章那道题的原题(只问最大值)。第 51 章的练习题里点过这个洞,现在可以做了
  • 52洛谷 P3258 [JLOI2014] 松鼠的新家解析 → ★★ 点差分的经典题,但有个坑:相邻两段的接头处会被算两次,要减掉 —— ⚠ 读题时先想清楚「每个点被访问几次」到底怎么定义
  • 52洛谷 P2680 [NOIP 2015 提高组] 运输计划解析 → ★ 第 53 章也用这道题 —— 再遇到时换新方法重做,别抄上次的 ⚠ 难题:二分答案(第 9 章)+ 边差分(本章)+ LCA(第 51 章)三合一。★ 它是「边差分」最标准的出场
  • 52洛谷 P3178 [HAOI2015] 树上操作解析 → ★ 第 53 章也用这道题 —— 再遇到时换新方法重做,别抄上次的 ⚠ 边改边问 —— ★ 放在这儿是为了让你亲眼看到本章这套为什么不够用(差分只能还原一次)。⚠⚠ 这条注解原来还写着「正解是树链剖分」,解析页量完之后订正了:这道题只问「根到 x」⇒ DFS 序 + 两棵树状数组就够,快 3.3 倍、短一半
  • 52洛谷 P1352 没有上司的舞会解析 → ★ 第 27 章也用这道题 —— 再遇到时换新方法重做,别抄上次的 第 27 章树形 DP 的原题。★ 放在这儿是想说明:不是每道树上题都要差分或倍增
  • 52洛谷 P1966 火柴排队解析 → ★ 第 11 章也用这道题 —— 再遇到时换新方法重做,别抄上次的 和树无关,考的是「离散化 + 逆序对」。★ 拿它复习第 6 章那一对逆运算的思路:先想清楚要求的到底是什么