题目列表

可按标题、OJ、标签和启发记录快速筛选题目解析。

共 1203 题
OJ题号标题标签难度最后更新解析
洛谷P2224
把每个任务的选择压成 A 机器总时间这一维,设 dp[x] 表示 A 用时为 x 时 B 的最小用时,最后在所有状态里取 max(A,B) 的最小值。
动态规划背包状态设计分类讨论
普及+/提高-2026-08-09 06:46
洛谷P2497
把每个点看成按 x 坐标有向无环图上的一个状态,接收费用可整理成关于目标坐标 x 的直线,用 Li Chao Tree 维护左侧所有可转移点的最小值。
动态规划几何Li Chao Tree最短路
省选/NOI-2026-08-09 06:46
洛谷P2513
设 dp[i][j] 表示长度为 i、逆序对数为 j 的排列个数,再用插入最大值的转移和前缀和把求和优化到 O(nk)。
动态规划前缀和优化计数DP逆序对
普及2026-08-09 06:46
洛谷P1879
把每一行压成二进制状态,预处理单行合法状态后按行做状压 DP,统计所有不相邻的种草方案数。
状态压缩动态规划计数DP网格DP
普及+/提高-2026-08-09 06:46
洛谷P2831
枚举两只小猪反推出一条合法下凹抛物线,把每条抛物线离散成一个覆盖集合,再做最少集合覆盖的状压 DP。
状态压缩动态规划几何最小覆盖
提高+/省选-2026-08-09 06:46
洛谷P3052
设 dp[mask] 为安排完这些牛后的最优状态,状态记录最少电梯趟数以及该趟数下最后一趟电梯的最小已载重量。
状态压缩动态规划位运算经典题
普及2026-08-09 06:46
洛谷P8687
把每包糖果压成一个口味集合 mask,设 dp[mask] 为覆盖这些口味所需的最少包数,做集合覆盖型状压 DP。
状态压缩动态规划集合覆盖位运算
普及2026-08-09 06:46
洛谷P8089
把完全二叉树的不完整部分压缩成“最后一个叶子到根”的一条路径,预处理满树方案数后沿这条路径自底向上递推。
树形DP动态规划完全二叉树递推
提高+/省选-2026-08-09 06:46
洛谷P3174
把路径内部点的贡献化成 deg(u)-1,将答案转成树上最大点权路径和,再在结尾补上两个端点贡献。
树形DP树树的直径推导
提高+/省选-2026-08-09 06:46
洛谷P4362
设 dp[u][j][0/1] 表示子树内选 j 个点给大头且 u 是否属于大头的最小代价,按 M=2 与 M>=3 分别判断父子边是否计入答案。
树形DP动态规划树分类讨论
提高+/省选-2026-08-09 06:46
洛谷P8744
设 dp[u] 为以 u 为根能得到的最大二叉树高度,把最深孩子放到兄弟链最后,就有转移 dp[u]=儿子数+max(dp[child])。
树形DP树动态规划递推
普及2026-08-09 06:46
洛谷P8625
设 dp[u] 表示必须包含 u 的最优连通块和,自底向上只吸收正贡献子树,就能在线性时间求树上最大连通子图和。
树形DP树动态规划建模
普及2026-08-09 06:46
洛谷P4344
在线段树中同时维护区间 1 的数量和最长连续 0,并用左优先递归把目标区间最靠前的若干个 0 填成 1。
线段树懒标记区间赋值区间最值模拟
提高+/省选-2026-08-09 06:46
洛谷P2146
把安装与卸载操作转成根到点路径设为 1、子树设为 0,再用树链剖分配合线段树维护区间赋值和区间和。
树链剖分线段树dfs序树建模
提高+/省选-2026-08-09 06:46
洛谷P8856
把城市之间的每一段铁路看成一个位置,请求对应区间 `[O,D-1]` 的整体加法,能否接单只取决于这段区间的最大占用是否超过座位数。
线段树区间最大值区间加建模
普及+/提高-2026-08-09 06:46
洛谷P8473
一次染色只能填补两个已黑点之间的空隙,因此答案等价于:两端点初始为黑,且每段初始白色空隙都被至少一个活跃操作跨过。
线段树二分区间覆盖建模思维
提高+/省选-2026-08-09 06:46
洛谷P4588
不要把删除操作当成模除法,而要把每次乘法看成一个位置:插入时赋值为乘数,删除时改回 1,用线段树维护全局乘积。
线段树乘积建模单点修改取模
普及+/提高-2026-08-09 06:46
洛谷P3130
在线段树节点同时维护区间和与区间最小值,区间加时用同一个懒标记同步更新这两个量。
线段树懒标记区间加区间最小值区间和
普及+/提高-2026-08-09 06:46
洛谷P2846
把灯的开关状态看成 0/1 数组,区间翻转时用 `区间长度 - 当前开灯数` 更新节点,再用懒标记维护整段翻转。
线段树懒标记区间翻转区间求和
普及+/提高-2026-08-09 06:46
洛谷P4086
把每个 K 对应的剩余作业看成一个后缀,预处理后缀和与后缀最小值,就能在线性时间内求出删去最小值后的最大平均分。
后缀和最小值分数比较思维
普及-2026-08-09 06:46
洛谷P1531
用线段树维护区间最大值;查询时返回区间最大,更新时在单点位置做 `max(原值, 新值)` 的只升不降修改。
线段树区间数据结构模板题
普及-2026-08-09 06:46
洛谷P2003
按高度从低到高处理平板,并维护每个单位小格当前最高支撑高度;每块平板左右支柱的长度就是当前高度减去对应边缘小格的最高支撑。
区间模拟排序推导
普及-2026-08-09 06:46
洛谷P8306
把所有模式串插入字典树,并在每个前缀节点记录经过它的模式串数量;查询串走到终点后的计数就是答案。
字典树字符串模板题
普及2026-08-09 06:46
洛谷P3419
把地板看成容量为 k 的缓存,缺车且地板已满时始终淘汰未来最晚再次被请求的车,再配合下一次出现位置预处理即可得到最优答案。
贪心模拟堆推导
提高2026-08-09 06:46
洛谷P8980
前 k 轮已经能区分所有 x,当且仅当前缀询问的 lcm 等于 lcm(1..n),因此答案就是所有必需质数最高幂第一次被覆盖轮次的最大值。
数论最大公约数质因数分解推导
提高+/省选-2026-08-09 06:46
洛谷P1267
先把四个面的单位三角形按立体共边关系建成度数不超过 3 的图,再做带父边与值域边界的记忆化搜索,分别取当前节点左右子树的最优解。
树形dp图论递归构造
提高+/省选-2026-08-09 06:46
洛谷P1269
把树定根后自底向上维护子树向上延伸的最大未截断衰减,若某个儿子子树再经过父边就会达到或超过初始强度,就必须在该儿子处安装放大器。
树树形dp贪心递归
提高+/省选-2026-08-09 06:46
洛谷P1268
利用叶子枝长公式 limb(x)=min((d(x,i)+d(x,j)-d(i,j))/2),递归删去一个叶子并累加其独有边长,最终得到整棵树的总重量。
树递归推导思维
普及+/提高-2026-08-09 06:46
洛谷P1092
按低位更重要的顺序给字母分配数字,每次赋值后立刻检查已经能确定的低位列是否满足进位加法,从而提前剪掉大量无效分支。
搜索递归剪枝模拟
提高+/省选-2026-08-09 06:46
洛谷P1054
先按题目给定优先级把表达式递归下降解析成语法树,再用多组模数代值比较签名,快速判断哪些选项与题干恒等。
字符串递归数学思维
提高+/省选-2026-08-09 06:46
洛谷P1053
先判断愿望关系能否构成唯一的整环,再在正反两个环序中统计最优旋转能保留多少人不动,答案就是 n 减去这个最大值。
图论构造环形处理思维
提高2026-08-09 06:46
洛谷P1311
把右端点固定后,合法左端点只取决于是否在最近一个消费不超过 p 的客栈之前;用每种颜色的出现次数做一次线性统计即可。
前缀和统计思维
普及2026-08-09 06:46
洛谷P1072
由 lcm(x,b0)=b1 可知 x 只能在 b1 的约数里取值,因此枚举 b1 的所有约数,再检查 gcd 和 lcm 两个条件即可。
数论最大公约数约数python
普及-2026-08-09 06:46
洛谷P1069
把目标试管数 M=m1^m2 分解成质因子需求,再看每种细胞的分裂因子 Si 每秒能提供多少对应指数,最早时间就是这些需求的最大上取整。
数论质因数分解整除python
普及+/提高-2026-08-09 06:46
洛谷P6462
设最后一次补刀前塔已攻击 t 次、英雄已攻击 t 次,先用不等式定位最早可能补刀的时刻,再判断那一刻塔是否还没先杀死小兵。
数学推导思维
普及2026-08-09 06:46
洛谷P6476
把两种倍数位置按 gcd 归一化后,问题转成相邻两个较稀疏倍数之间会强制出现多少个连续稠密颜色,判定 k 是否严格大于这个上界。
数学最大公约数思维
普及2026-08-09 06:46
洛谷P1609
先把左半边镜像成回文;若还不够大,就给中间位置进位,再重新镜像,得到严格大于原数的最小回文数。
字符串模拟高精度
普及2026-08-09 06:46
洛谷P1592
利用与 n 互质的数按长度 n 周期重复、每段恰有 phi(n) 个的性质,先定位块号,再在 1..n 中找对应位置。
数论最大公约数思维
普及2026-08-09 06:46
洛谷P1154
把两头奶牛落到同一厩等价为编号差是 K 的倍数,先记录所有差值,再找最小的不整除任何差值的 K。
数学枚举思维
普及2026-08-09 06:46
洛谷P1134
把 1 到 n 按 5 个一组递归折叠,利用 D(n)=D(n/5)*D(n%5)*2^(n/5) mod 10 求阶乘最后一个非零数字。
数学数论递归
普及2026-08-09 06:46
洛谷P1023
把每个竞争售价转成关于税收或补贴 k 的一次严格不等式,和目标价对应约束求交集后,直接取绝对值最小的整数解。
模拟枚举分段函数思维
普及2026-08-09 06:46
洛谷P3200
先识别答案就是第 n 个 Catalan 数,再用质因数分解计算 C(2n,n)/(n+1),避免模数不一定是质数时无法直接求逆元。
组合计数数学Catalan质因数分解线性筛
提高+/省选-2026-08-09 06:46
洛谷P7118
把题目的“更有趣”关系看成所有本质不同有序二叉树的全序,先按结点数分类,再递归计算同大小树中的字典序排名。
树递归组合计数Catalan排名
提高+/省选-2026-08-09 06:46
洛谷P1375
先识别出圆上不相交配对就是 Catalan 数,再用 Cn = Cn-1 * (4n-2) / (n+1) 的线性递推把 O(n^2) 优化到 O(n)。
动态规划递推组合计数数学Catalan
普及2026-08-09 06:46
洛谷P1754
把拿 50 元和拿 100 元的人分别看成前缀加一和减一,设 f(a,b) 统计剩余两类人数时的合法排队方案数。
动态规划递推组合计数数学Catalan
普及2026-08-09 06:46
洛谷P6692
先算完整 n×m 网格所有出生点对的曼哈顿距离和,再减去所有涉及障碍点的贡献,最后补回障碍之间被多减的一次。
数学推导曼哈顿距离组合计数思维
提高+/省选-2026-08-09 06:46
洛谷P8557
把每种金属在 k 个熔炉中的出现情况看成一个长度为 k 的 0/1 模式,合法模式有 2^k-1 种,总答案是 (2^k-1)^n。
数学容斥快速幂思维
普及2026-08-09 06:46
洛谷P8807
如果 n mod 1..m 没有重复,那么它们只能依次是 0,1,2,...,m-1,等价于 1..m 全都整除 n+1。
数学数论思维
普及2026-08-09 06:46
洛谷P7107
设恰好 p 个人抽到最大记号数 t,则总记号数必须落在 [p t, p t + (n-p)(t-1)],找到合法 t 后再贪心构造。
数学构造思维
普及2026-08-09 06:46
洛谷P5100
先预处理每个格子最近球员的到达代价,再把空球、控球和四个踢球方向建成 6 层状态图跑最短路。
图论最短路网格思维
省选/NOI-2026-08-09 06:46
洛谷P1651
设 dp[diff] 为当前两塔高度差为 diff 时较矮塔的最大高度,每个木块枚举放高塔、放低塔或不用即可完成差值 DP。
动态规划背包dp
普及+/提高-2026-08-09 06:46
洛谷P1650
把双方马速排序后用双指针贪心:能用最快赢最快就赢,否则争取最慢赢最慢,再不行就用最慢去消耗对方最快。
贪心排序
普及+/提高-2026-08-09 06:46
洛谷P1799
只关注最终会成为匹配点的元素,若两个匹配点之间原数组位置差足够填满目标位置差,就能做 O(n^2) 动态规划。
动态规划枚举dp
普及+/提高-2026-08-09 06:46
洛谷P2359
把最后两位数字当作状态,按位转移时只检查新形成的三位数是否为素数,从而用 O(n) 统计答案。
动态规划素数数论dp
普及+/提高-2026-08-09 06:46
洛谷P5888
把出现在限制边中的球员和 1 号球员单独作为特殊点,其余球员合并成一个普通组,做 m 轮压缩 DP。
动态规划图论dp
普及+/提高-2026-08-09 06:46
洛谷P1977
设 dp[i][j] 为前 i 辆车恰好送走 j 个人的最小花费,枚举当前车上 0..Z_i 个人做费用转移。
动态规划枚举dp
普及-2026-08-09 06:46
洛谷P7074
按列做动态规划,列内路径方向只能单调向上或单调向下,用两次扫描维护每一行结束时的最大和。
动态规划网格dp
普及+/提高-2026-08-09 06:46
洛谷P2028
设 dp[i][j] 表示前 i 个苹果放进 j 个非空篮子的方案数,第 i 个苹果要么单独开新篮子,要么放进 j 个旧篮子之一。
动态规划组合计数dp
普及2026-08-09 06:46
洛谷P9553
按日期统计每天原计划首学人数,再把特殊日顺延和复习偏移都压成批量计数转移,避免逐单词模拟。
模拟计数推导
普及2026-08-09 06:46
洛谷P2007
把六个面分别当作 3x3 数组,按题目定义逐步模拟四种转动,每步拆成侧面循环置换和本面旋转。
模拟思维
未知2026-08-09 06:46