题目列表

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

共 1203 题
OJ题号标题标签难度最后更新解析
洛谷U663733
使用DP计数恰好装满背包的排列方案数,先枚举容量再枚举物品,dp[c]+=dp[c-v]累加不同顺序的方案,对1e9+7取模。
动态规划完全背包背包
普及-2026-10-03 12:38
洛谷U663791
多重背包模板题,数据范围扩大(N,V,s≤1000),需用二进制分组将每种物品拆分成 O(log s) 个 01 物品。
动态规划多重背包二进制优化背包
普及-2026-10-03 12:38
洛谷P2196
编号天然是拓扑序,按终点递推 f[i] = max(f[j] + a[i]),用 pre 数组还原最优路径。
动态规划DAG拓扑序路径恢复c++
普及2026-10-03 12:38
洛谷P1983
每趟车建立虚拟节点压缩停靠与不停靠站的大小约束,再做拓扑最长路求最少级别数。
拓扑排序DAG虚拟节点动态规划python
普及+/提高-2026-10-03 12:38
洛谷P6893
离散菜先做凹费用完全背包求每个整数重量的最优值,连续菜再把剩余重量写成分段二次函数最优分配,最后合并两部分答案。
动态规划背包状态设计分类讨论
提高+/省选-2026-10-03 12:38
洛谷P7097
先做一个容量 200 的 0/1 背包,求每个总 p 下能得到的最大总 k,再按回合数与 d 值差做极小极大动态规划。
动态规划背包状态设计极小化极大
提高+/省选-2026-10-03 12:38
洛谷P3891
先用完全背包预处理“花费 x 资源当秒最多新增多少采集效率”,再按时间推进 DP:dp[j] 表示当前手里有 j 资源时的最大已有采集效率。
动态规划完全背包状态设计分类讨论
提高+/省选-2026-10-03 12:38
洛谷P4138
先把可行性化成“所选挂钩总数至少是所选挂饰数减一”,再把挂饰分成必选、必不选和可选三类,对负收益但能加挂钩的部分做 0/1 背包。
动态规划01背包分类讨论建模
提高+/省选-2026-10-03 12:38
洛谷P2254
把每段固定方向的时间看成一次行或列上的区间转移,设 dp[x][y] 表示当前位置最大滑行距离,再用单调队列优化每段的滑动窗口最大值。
动态规划单调队列网格
提高+/省选-2026-10-03 12:38
洛谷P1433
状压 TSP:用 dp[mask][u] 表示已吃集合 mask 且最后停在 u 的最短距离,起点固定、终点不限。
状态压缩动态规划TSP位运算
普及+/提高-2026-10-03 12:38
洛谷P1450
先预处理 4 种硬币无限使用时的完全背包方案数,再对每个询问用 16 个子集做容斥,扣掉任意一种硬币超上界的方案。
动态规划完全背包容斥组合计数背包
提高+/省选-2026-10-03 12:38
洛谷P2851
付款方做有限硬币最少张数 DP,找零方做无限硬币最少张数 DP,再枚举实付金额取最优。
动态规划多重背包完全背包单调队列背包
提高+/省选-2026-10-03 12:38
洛谷P1807
利用每条边都从小编号指向大编号的天然拓扑序,按编号进行 DAG 最长路 DP。
DAG拓扑序动态规划图论python
普及2026-10-03 12:38
洛谷P1048
把每株草药看成只能选一次的物品,按时间做 0/1 背包;记忆化搜索填二维表,一维倒序 DP 把表滚动压缩。
动态规划01背包背包记忆化搜索
普及-2026-10-03 12:38
洛谷P1002
先标记马所在格和马控制格,再用网格 DP 从上方和左方累加合法路径数。
动态规划网格DPpythonc++
普及-2026-10-03 12:38
洛谷P9718
把进位看成数位上的选择:每位取刚好够用的最小数字,用「当前进位状态 + 已用进位次数」的 DP 求最小 y,答案可达 10^35 需用 128 位整数。
数位 DP动态规划构造数学思维
提高2026-10-03 12:37
洛谷P9716
把操作次数记成 c_u,颜色由 c_u 的奇偶决定、相邻两点满足 c_u <= c_{a_u}+[a_u=s];在 s 所在的功能图基环树上做树形 DP,环上用前缀 max 转移。
动态规划 DP基环树树形 DP功能图
省选/NOI-2026-10-03 12:34
洛谷P9247
把每个操作的值看成一段存活区间,先分块双指针求出每个操作被弹出的时刻,再在时间轴上扫描统计颜色数。
分块双指针扫描线数据结构
省选/NOI-2026-10-03 12:11
洛谷P9714
折叠一次后 t 变成关于中心对称的向量,之后每折叠一次只翻倍;于是 b 只能是 x·t + H·(t+reverse(t)) 的形式,解出唯一的非负整数 x,H 再验证即可。
数学推导思维枚举线性组合
普及2026-10-03 12:04
洛谷P9234
每个瓜有「不买 / 买半个(劈一刀) / 买整个」三种去向,重量统一乘 2 化为整数后用折半搜索分别枚举两半并合并,求恰好凑出 2m 的最少劈瓜数。
搜索DFS折半搜索剪枝枚举
普及+/提高-2026-10-03 11:55
洛谷P9713
每维只记录已被切掉的最大坐标,剩余部分始终是长方体,体积等于三个剩余长度之积,单次操作 O(1)。
模拟枚举思维数学
普及-2026-10-03 11:51
洛谷P9238
最少操作数等于 n 以内无平方因子数个数;容斥化为 μ(d)·⌊n/d²⌋ 求和,对 d 分块并用杜教筛求莫比乌斯前缀和,压到 O(n^0.4)。
数论莫比乌斯函数杜教筛整除分块容斥线性筛
省选/NOI-2026-10-03 11:47
洛谷P9240
由 B=⌊A/V⌋ 反推出每条记录的 V 区间 [⌊A/(B+1)⌋+1, ⌊A/B⌋],答案就是所有区间的交集。
数学枚举整除区间推导
普及-2026-10-03 11:38
洛谷P9237
按行优先逐格染色,每填一格立刻检查刚刚被确定的那个 3×3 数字约束,用黑格数与剩余格数上下界剪枝搜索。
搜索DFS回溯剪枝网格
提高+/省选-2026-10-03 11:36
洛谷P9244
按右端点线性扫描,用变量 cnt 单调维护上界 j-K+1 内 c1 出现的次数,遇 c2 累加 cnt,O(n) 计数。
字符串双指针滑动窗口计数枚举优化
普及-2026-10-03 11:36
洛谷P9239
日期统计用贪心找最靠左落点判断子序列,01 串的熵用单调性二分定位峰值附近的两个候选,两问都只需常数级计算。
枚举贪心二分数学思维
普及-2026-10-03 11:33
洛谷P9229
状态图是一棵树:把第 k 个环的桥递归成 T_k = T_{k-1} + T_{k-1},在树上用 O(n^2) 的区间 DP 求起点到终点距离。
树形结构动态规划递推区间 DP状压 BFS
提高2026-10-03 11:28
洛谷P9230
A 题按「半长 + 数位和」统计并按乘法原理合并,B 题以「末尾连续答对数」为状态做线性递推,一次算出一句答案。
计数数位统计动态规划暴力枚举对拍
普及-2026-10-03 11:23
洛谷P9233
用“恰好出现 t 次的颜色种数”把子树判定降到 O(1),再用 DSU on Tree 让父亲复用重儿子的统计,做到 O(n log n)。
树DFS序启发式合并树形结构计数
提高+/省选-2026-10-03 11:07
洛谷P9236
子段异或和化为两个前缀异或的异或,再按位统计前缀异或中 0/1 的个数,用 cnt0×cnt1 累加每位贡献。
异或位运算前缀和计数
普及+/提高-2026-10-03 11:01
洛谷P1514
把“水往低处流”看成有向图的可达性,每个蓄水厂一次 BFS 求出它能灌溉的干旱区城市;可行时这个集合恰好是一段连续区间,于是问题化为区间覆盖贪心。
BFS图论网格贪心区间覆盖可达性
提高2026-10-03 10:50
洛谷P9231
$x=y^2-z^2$ 等价于 $x$ 有同奇偶的因子对,即 $x$ 为奇数或 $4$ 的倍数;用前缀计数 $F(R)-F(L-1)$ 即可 $O(1)$ 求出答案。
数学数论思维计数前缀和
普及-2026-10-03 10:37
洛谷P2680
二分答案,倍增 LCA 求路径长度,树上差分找所有超标路径的公共边并比较最大公共边权。
二分答案LCA树上差分倍增
提高2026-10-02 23:40
洛谷P2440
二分木材长度,统计总共能切出的段数是否至少达到 k。
二分答案python
普及-2026-10-02 18:55
洛谷P2678
二分最短跳跃距离,贪心统计给定距离下最少需要移走的石头数。
二分答案贪心python
普及2026-10-02 18:55
洛谷P8818
把极大极小乘积按 B 区间符号分三类讨论,只需在 A 区间查询最值、最小正数、最大负数和是否有零。
ST表分类讨论极小化极大思维
提高+/省选-2026-10-01 22:20
洛谷P2859
按开始时间排序后,用小根堆维护每个牛棚最后占用的结束时间;堆顶能空出就复用,否则新开棚,得到最少牛棚数与一套合法分配。
贪心排序堆usaco
普及2026-09-27 16:41
洛谷P2782
两条航道交叉等价于两岸坐标的顺序相反;把友好城市按南岸坐标排序后,问题变成求北岸坐标序列的最长严格上升子序列,用二分手写 LIS 做到 O(N log N)。
动态规划排序lis二分
普及2026-09-22 20:41
洛谷P1439
两个排列的 LCS:把 P1 的值映射成它在 P1 中的下标,P2 就变成位置序列,公共子序列恰好对应它的严格上升子序列,再用 tail 数组加手写二分求 LIS,总复杂度 O(n log n)。
动态规划二分排列下标映射
普及+/提高-2026-09-19 19:32
洛谷U197280
前缀 DP:f(i,j) 表示两个前缀的 LCS 长度,字符相等时取 f(i-1,j-1)+1,否则取上侧与左侧的较大值,答案是 f(n,m)。
动态规划字符串二维数组
普及2026-09-19 18:22
洛谷P3285
将连续用户压缩成可动态撕裂的区间块,本质是区间映射: 每次撕裂出一个单点
数据结构线段树Treap分裂合并map
提高+/省选-2026-09-19 08:31
洛谷P1503
把被摧毁的房子看成断点,用有序集合维护断点,查询时求左右最近断点使答案等于 R - L - 1;给出 FHQ-Treap 与 std::set 两种实现。
平衡树FHQ-Treap有序集合前驱后继栈
普及+/提高-2026-09-16 19:23
洛谷P3391
用隐式 Splay 或隐式 FHQ-Treap 维护序列顺序,通过双哨兵或按排名分裂实现区间翻转。
平衡树SplayFHQ-Treap区间翻转模板题
提高2026-09-15 17:20
洛谷U661986
使用01背包DP,dp[c]表示容量c时的最大总价值,容量倒序枚举确保每件物品只选一次;同模型的 Python 写法因 3 MB 内存限制必然 MLE。
动态规划01背包背包
入门2026-09-14 07:09
洛谷P17413
比较 n、n^2 与 5×10^8 的关系,按复杂度从高到低输出能够通过的最高级别。
复杂度数学
入门2026-09-07 15:23
洛谷P17415
利用兑换门槛不超过 20,把可达钱数拆成低状态和统一平移的高状态,特殊机器再合并至多三份集合。
数据结构集合Treap状态压缩
提高2026-09-07 15:23
洛谷P1090
每次合并当前最小的两堆果子,等价于构造 Huffman 树;可用小根堆维护,也可排序后用两个普通队列 O(n) 完成合并阶段。
贪心堆优先队列队列哈夫曼编码python
普及2026-09-05 10:14
洛谷P1238
DFS 回溯枚举所有简单路径,按 上左下右 方向序输出全部路线,无路输出 -1。
DFS回溯网格
普及2026-08-29 17:00
洛谷P3379
用倍增表 up[u][j] 记录 2^j 级祖先,查询时先提深再同步跳,单次询问 O(log n)。
LCA倍增树模板
普及2026-08-22 22:46
洛谷P1928
递归解析方括号结构,遇到 [D... ] 时先展开内部字符串,再重复 D 次拼接。
递归字符串python
普及-2026-08-22 22:45
洛谷P1099
先求树的直径,在直径上用双指针枚举长度不超过 s 的核区间,偏心距由两端距离与分支最大深度决定。
树的直径双指针贪心
提高2026-08-19 21:08
洛谷P1351
对每个中间点聚合邻居权值,用 S²−Σw² 得到距离为 2 的有序点对总和,用前两大权值求最大值。
树图论枚举数学
普及2026-08-17 14:57
洛谷P1253
用线段树双懒标记维护区间赋值与区间加,赋值覆盖加法、下传先赋值后加,查询区间最大值 O(log n)。
线段树懒标记区间赋值区间加区间最大值
普及+/提高-2026-08-17 14:57
洛谷P2572
用线段树双懒标记(赋值覆盖翻转)维护 01 序列,节点存 0/1 两套前缀后缀与最长连续段,单次操作 O(log n)。
线段树懒标记01序列区间赋值区间翻转前缀后缀最值
提高2026-08-17 14:57
洛谷P3373
把区间乘和区间加统一成仿射懒标记,维护模意义下的区间和。
线段树懒标记区间乘区间加取模python
普及+/提高-2026-08-17 14:57
洛谷P3870
用翻转懒标记维护区间亮灯数量,整段翻转时数量取反、标记异或,单次操作 O(log n)。
线段树懒标记区间翻转
普及+/提高-2026-08-17 14:57
洛谷P4145
用线段树维护区间和与最大值,整段最大值不超过 1 时剪枝跳过开方,摊还 O(log n) 级单次操作。
线段树区间开方区间最大值剪枝
提高2026-08-17 14:57
洛谷P4513
线段树维护区间和、最大前缀、最大后缀和最大子段和,支持单点修改。
线段树最大子段和点修改python
提高2026-08-17 14:57
洛谷P6492
线段树节点维护区间两端值与最长交替前后缀,合并时按跨中点边界是否交替拼接,单点翻转 O(log n)。
线段树区间合并交替序列
普及+/提高-2026-08-17 14:57
洛谷P1434
把格子按高度关系看成 DAG,用记忆化搜索计算每个格子出发的最长滑坡,每个格子只算一次。
记忆化搜索动态规划网格DPDFS
普及2026-08-17 14:50