题目列表

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

共 3718 题
OJ题号标题标签难度最后更新解析
洛谷P1757
把物品按组分类,每组最多选一件,外层遍历组、内层倒序枚举容量、最内层遍历组内物品做 01 转移,保证同组互斥。
动态规划分组背包背包
普及-2026-10-07 12:15
洛谷B4141
筛出≤n的所有素数,再做0/1背包计数取max:dp[j]=max(dp[j], dp[j-p]+1),求最多项数。
动态规划01背包素数
普及-2026-10-07 12:15
洛谷P1064
附件挂主件,对每个主件枚举附件组合(最多2^2种),转成0/1背包做倒序转移。
动态规划01背包分组背包有依赖背包
普及+/提高-2026-10-07 12:15
洛谷P1466
把1..N分成和相等的两堆→0/1背包计数dp[target],总和奇数直接0,最后结果除以2去重。
动态规划01背包计数
普及-2026-10-07 12:15
洛谷P1802
每个好友打不打都获经验,按药水量做 01 背包变体——打输也得 lose_i 经验,dp[j]=max(dp[j]+lose_i,dp[j-use_i]+win_i)。
动态规划01背包背包
普及-2026-10-07 12:15
洛谷P2370
二分最小文件大小限制L,每次check用0/1背包判断在容量S限制下能否装下价值≥p的文件。
动态规划01背包二分答案
普及+/提高-2026-10-07 12:15
洛谷P4141
先求出全部物品的方案数f[j],再对每个物品i用g[j]=f[j]-g[j-w[i]]推出不含i的方案数。
动态规划01背包计数补集
普及+/提高-2026-10-07 12:15
洛谷U661993
01背包和完全背包混合:根据类型标记分别用倒序(01)和正序(完全)转移,同一次dp内完成。
动态规划背包混合背包
普及+/提高-2026-10-07 12:15
洛谷U661994
在容量和承重两维约束下做01背包:dp[j][k]表示容量j承重k的最大价值,两维均倒序转移。
动态规划背包二维费用背包
普及-2026-10-07 12:15
洛谷U661995
每组最多选一个物品:保留上一组状态previous,对当前组每个物品从previous转移,避免组内互窜。
动态规划背包分组背包
普及+/提高-2026-10-07 12:15
洛谷U662039
先 DP 得到二维最优值表,再用 DFS 回溯所有能走到最优值的分支,收集全部最优方案并按字典序输出。
动态规划背包搜索
普及+/提高-2026-10-07 12:15
洛谷U662097
在 01 背包 DP 的同时维护方案计数 dp2,dp 值更大时覆盖计数,相等时累加计数,滚动数组倒序成组。
动态规划背包
普及+/提高-2026-10-07 12:15
洛谷U662107
dp 初始值区分可达与不可达:dp[0]=0 可达,其他 dp[c]=-INF 不可达。只有从可达前驱转移才参与计数。
动态规划背包
普及+/提高-2026-10-07 12:15
洛谷U661992
多重背包模板题,数据范围很小(N,V,s≤100),直接三重循环 DP,每个物品枚举选取件数即可。
动态规划多重背包背包
普及-2026-10-07 12:15
洛谷U663298
使用01背包DP计数恰好装满背包的方案数,dp[c]+=dp[c-v]累加组合方案,容量倒序枚举,对1e9+7取模。
动态规划01背包背包
普及-2026-10-07 12:15
洛谷U663710
使用完全背包DP计数恰好装满背包的组合方案数,每种物品无限件,dp[c]+=dp[c-v],容量正序枚举,对1e9+7取模。
动态规划完全背包背包
普及-2026-10-07 12:15
洛谷U663797
多重背包模板题,数据极大需用单调队列优化,按体积余数分组,滑动窗口维护最优前驱状态,O(NV)。
动态规划多重背包单调队列背包
提高2026-10-07 12:15
洛谷P2345
按 v 排序消掉 max,每头牛只与前面牛配对,两个树状数组维护坐标数量与坐标和。
树状数组排序前缀和
入门2026-10-07 12:15
洛谷P7167
每个圆盘的溢出去向唯一(下方第一个更大直径),构成链式森林,倍增 + 容量前缀和回答查询。
单调栈倍增前缀和
普及+/提高-2026-10-07 12:15
洛谷P4592
子树变 Euler 区间版本差,路径用根到点版本四根容斥,可持久化 01-Trie 回答最大异或。
可持久化Trie01-TrieDFS序LCA异或
省选/NOI-2026-10-07 12:15
洛谷P2048
前缀和 + ST 表区间最值 + 堆分裂区间,贪心取前 k 大子数组和。
前缀和ST表堆贪心多路归并
省选/NOI-2026-10-07 12:15
AcWing1018
2N-1 时限等价于只能向右/向下,网格 DP 求最小费用,越界来源按 INF 处理。
动态规划网格DPc++
普及-2026-10-07 12:15
AcWing1015
网格路径 DP:每个格子只从上方或左方走来,dp[i][j] = max(dp[i-1][j], dp[i][j-1]) + a[i][j]。
动态规划网格DPc++
普及-2026-10-07 12:15
曙梦 OJCSP202603B
灵活任务按单位咖啡收益率排序,普通任务用 0/1 背包选择,再合并两类任务的最大收益。
背包0/1 背包贪心排序动态规划
提高2026-10-07 12:15
曙梦 OJCSP202603E
复制维修站边界后用并查集合并维修道路,维护站点间路径段从两条未修道路变为至多一条。
并查集树路径查询
提高+/省选-2026-10-07 12:15
曙梦 OJCSP202603E2
按 X 分流:离线用树链剖分求计划阈值,在线用站点分段与并查集维护可行计划数。
并查集树链剖分线段树离线路径查询
省选/NOI-2026-10-07 12:15
曙梦 OJCSP202605D
把最大必胜子游戏数转化为区间调度,预处理最早结束区间并用倍增回答询问。
贪心区间调度倍增前缀异或离线
提高+/省选-2026-10-07 12:15
曙梦 OJCSP201312C
用单调递增栈在柱子遇到右侧不高位置时结算可延伸宽度,线性求最大矩形面积。
单调栈栈
普及+/提高-2026-10-07 12:15
曙梦 OJCSP201403E
合并双 CPU 方案为全局串行任务,用三维负载 DP 记录两台 CPU 与 GPU 的工作量。
动态规划状态压缩
提高+/省选-2026-10-07 12:15
曙梦 OJCSP201409D
以所有分店为多源 BFS 起点,预处理每个格点到最近分店的最短距离并按需求量计费。
BFS图最短路
普及-2026-10-07 12:15
曙梦 OJCSP201412D
按水渠费用升序用 Kruskal 选择不成环的边,得到连接全部麦田的最小生成树。
最小生成树并查集贪心
普及-2026-10-07 12:15
曙梦 OJCSP201503D
将交换机和电脑建成一棵树,通过两次 BFS 求树的直径。
树BFS树的直径
普及-2026-10-07 12:15
曙梦 OJCSP201509E
在 AC 自动机上建立 max-plus 转移矩阵,快速幂求超长文章的最大匹配次数。
AC 自动机矩阵快速幂动态规划
提高+/省选-2026-10-07 12:15
曙梦 OJCSP201512C
按操作模拟水平线、竖直线与四连通填充,最后按纵坐标倒序输出画布。
模拟BFS二维数组
普及-2026-10-07 12:15
曙梦 OJCSP201604D
危险结束前在时间扩展网格 BFS,时刻 101 后转为多源普通 BFS。
BFS最短路网格图
普及-2026-10-07 12:15
曙梦 OJCSP202104E
将线路视为可持续乘坐的状态,用 CRT 求会面时刻并做时间依赖 Dijkstra。
最短路Dijkstra中国剩余定理同余
省选/NOI-2026-10-07 12:15
曙梦 OJCSP202312B
试除分解每个 n,统计各质因子的指数,只保留指数不小于阈值 k 的完整质因数幂。
数论质因数分解枚举
普及-2026-10-07 12:15
曙梦 OJCSP202312E
按最多 4 条边分成前后两段做彩色路径 DP,再用位集查询颜色不冲突的最佳后半段。
图论状压 DP折半搜索位运算
提高+/省选-2026-10-07 12:15
曙梦 OJCSP202406B
用一维行优先序列保存矩阵,重塑只修改形状,转置时按下标映射重排,查询直接定位线性下标。
模拟矩阵下标映射
普及-2026-10-07 12:15
曙梦 OJCSP202412D
把每个可选落点产生的后退位置视为 BFS 转移,并用并查集删除已扫描落点,使所有区间转移近线性完成。
BFS并查集区间遍历最短路
普及+/提高-2026-10-07 12:15
曙梦 OJCSP202412E
用端点贪心把每个梦魔的限制转成嵌套区间,再用单调栈和计数排序在线性时间求出所有落点答案。
贪心单调栈前缀和区间最值
提高+/省选-2026-10-07 12:15
曙梦 OJCSP202506D
用有限状态自动机统计连续自由字母段,并以线性递推和 Kitamasa 处理超长段。
字符串自动机线性递推矩阵快速幂计数DP
省选/NOI-2026-10-07 12:15
曙梦 OJCSP202509B
把每个 5x9 窗口转成阈值区间,用差分数组合并所有能呈现 CSP 水印的阈值。
枚举差分二维数组
普及-2026-10-07 12:15
曙梦 OJCSP202509D
利用权值排列把路径 mex 转成路径外节点的最小权值,并用树链剖分查询路径补集最小值。
树链剖分路径查询mex
提高+/省选-2026-10-07 12:15
洛谷P2386
用 DFS 枚举不下降序列,统计把 m 个苹果分到 n 个盘子的不同分法数。
DFS递归整数划分计数
普及-2026-10-07 12:15
NOI OpenJudgech0104-20
按判别式正负分类输出两个实根、重根或共轭复根。
数学分类讨论浮点数python
普及-2026-10-07 12:15
NOI OpenJudgech0105-44
用埃氏筛找出不超过第 10000 个质数的全部质数,再按下标取第 n 个。
质数筛法数学python
普及-2026-10-07 12:15
NOI OpenJudgech0107-11
同时维护密文到明文和明文到密文映射,验证完整双射后翻译电报。
字符串映射模拟python
普及-2026-10-07 12:15
NOI OpenJudgech0107-19
将较长串与自身拼接,用子串判断覆盖全部循环移位后的情况。
字符串匹配模拟python
普及-2026-10-07 12:15
NOI OpenJudgech0107-30
将两个字符环各自复制一遍,在双串上用最长公共子串 DP 求答案。
动态规划字符串python
普及+/提高-2026-10-07 12:15
NOI OpenJudgech0108-16
每天基于旧矩阵检查四邻格是否存在克制者,再同步更新剪刀石头布领地。
矩阵模拟python
普及-2026-10-07 12:15
NOI OpenJudgech0108-25
将字符转为五位二进制流,按顺时针螺旋写入矩阵后按行输出密文。
矩阵字符串模拟编码python
普及-2026-10-07 12:15
NOI OpenJudgech0110-04
计算总分后按总分、语文分和学号组成的三元键排序。
排序模拟python
普及-2026-10-07 12:15
NOI OpenJudgech0110-05
按分数降序和报名号升序排序,以计划人数的 150% 位置确定分数线。
排序模拟python
普及-2026-10-07 12:15
NOI OpenJudgech0112-05
统一转小写后按空格切分文章,统计完整单词匹配及首个位置。
字符串模拟python
普及-2026-10-07 12:15
NOI OpenJudgech0112-08
按循环密钥反向平移密文字母,同时保留密文中的大小写。
字符串模拟python
普及-2026-10-07 12:15
NOI OpenJudgech0112-09
按操作顺序用转置、切片和行逆序模拟图像旋转与翻转。
矩阵模拟python
普及-2026-10-07 12:15
NOI OpenJudgech0112-10
用埃氏筛标记不超过 n 的素数,再枚举相差为 2 的素数对。
素数筛法数学python
普及-2026-10-07 12:15
NOI OpenJudgech0113-04
统计各大写字母频次,自最高频向下逐层打印星号。
字符串模拟python
普及-2026-10-07 12:15
NOI OpenJudgech0113-06
逐个检查 1 到位数的乘积是否为原数字串的循环移位。
字符串模拟高精度python
普及-2026-10-07 12:15