题目列表
可按标题、OJ、标签和启发记录快速筛选题目解析。
| 标题 | OJ | 题号 | 标签 | 难度 | 最后更新 | 原题 |
|---|---|---|---|---|---|---|
用二维 01 背包同时记录最多能泡到的 MM 数和对应的最少时间。 | luogu | P1509 | 普及/提高- | 2026-06-19 16:22 | 打开 | |
先用完全背包求出一年内的最优收益,再按年份滚动更新总资产。 | luogu | P1853 | 普及+/提高 | 2026-06-19 16:15 | 打开 | |
把每个分组大小看成完全背包物品,预处理一趟运送的总时间后做最小值 DP。 | luogu | P2904 | 普及- | 2026-06-19 16:08 | 打开 | |
按余数做 0/1 计数 DP,统计总能力对 F 取模为 0 的非空子集数。 | luogu | P2946 | 普及- | 2026-06-19 15:57 | 打开 | |
把每种题目看成可重复物品,按耗时做一维完全背包,求不超过 T 的最大总分。 | luogu | P2722 | 普及- | 2026-06-19 15:48 | 打开 | |
把每个四次方数看成可以重复使用的物品,按数字 m 做一维完全背包,维护凑出 j 的最少项数。 | luogu | P1679 | 普及- | 2026-06-19 15:42 | 打开 | |
把每个素数看成可以重复使用的物品,按整数 n 做一维完全背包,统计凑出 n 的组合方案数。 | luogu | P1832 | 普及- | 2026-06-19 15:42 | 打开 | |
把每种草药看成可以重复选的物品,按时间做一维完全背包,容量正序枚举维护最大价值。 | luogu | P1616 | 普及- | 2026-06-19 15:39 | 打开 | |
把每个物品看成只能选一次的背包物品,按容量做一维 0/1 背包,维护不超过 M 时的最大价值。 | luogu | P2871 | 普及- | 2026-06-19 15:32 | 打开 | |
把每捆草的体积同时看成重量和价值,用一维 0/1 背包求不超过容量 C 的最大总体积。 | luogu | P2925 | 普及- | 2026-06-19 15:29 | 打开 | |
把每捆干草的重量同时看成重量和价值,用一维 0/1 背包求不超过 H 的最大总重量。 | luogu | P2639 | 普及- | 2026-06-19 15:24 | 打开 | |
设 dp[i][v] 表示调完前 i 次后音量 v 是否可达,按加减两种转移,最后从大到小找最大可达音量。 | luogu | P1877 | 普及- | 2026-06-19 15:20 | 打开 | |
先把每道题的耗时按水平倍率换算出来,再把奖励当价值、耗时当容量做一维 0/1 背包。 | luogu | P2430 | 普及- | 2026-06-19 15:09 | 打开 | |
先用 0/1 背包求达到及格线所需的最少作业时间,再把剩余时间留给耗时最短的喜欢题。 | luogu | P1926 | 普及/提高- | 2026-06-19 15:05 | 打开 | |
把有限枚砝码逐个展开成 0/1 物品,按总重量做布尔可达性背包,最后统计所有可达的正整数重量。 | luogu | P2347 | 普及/提高- | 2026-06-19 14:57 | 打开 | |
先预处理每个正整数的真约数和,再把数字本身当重量、真约数和当价值,做一维 0/1 背包求最大总价值。 | luogu | P1734 | 普及/提高- | 2026-06-19 14:53 | 打开 | |
把每种菜看成只能选一次的物品,倒序做计数 0/1 背包,统计恰好花完 M 元的方案数。 | luogu | P1164 | 普及- | 2026-06-19 14:47 | 打开 | |
先把每件物品的收益算成价格乘重要度,再按预算做一维 0/1 背包,维护不超过预算时的最大满意度。 | luogu | P1060 | 普及- | 2026-06-19 14:42 | 打开 | |
把每个物品的体积同时看成重量和收益,先用一维 0/1 背包求最大可装体积,再用 V 减去它得到最小剩余空间。 | luogu | P1049 | 普及- | 2026-06-19 14:37 | 打开 | |
把每株草药看成只能选一次的物品,按时间做一维 0/1 背包,维护总时间不超过 t 时的最大总价值。 | luogu | P1048 | 普及- | 2026-06-19 14:32 | 打开 | |
把每块木石看成只能用一次的物品,按体积做最小代价背包,并把超过目标体积的状态统一截断到 v。 | luogu | P1510 | 普及/提高- | 2026-06-19 14:27 | 打开 | |
把每个候选人看成价值为资料量的 0/1 物品,用探查风险和工资作为两维容量,做二维费用背包求最大资料量。 | luogu | P1910 | 普及/提高- | 2026-06-19 14:22 | 打开 | |
把每个愿望看成价值为 1 的物品,用金钱和时间作为两维容量,做二维费用 0/1 背包求最多能完成多少个愿望。 | luogu | P1855 | 普及/提高- | 2026-06-19 14:15 | 打开 | |
把分队问题转成恰好选 n/2 人、总分不超过总和一半的二维 01 背包,在可达状态里倒序找最大和。 | luogu | P2663 | 普及/提高- | 2026-06-19 14:07 | 打开 | |
把体积和质量分别作为两维容量,做二维 0/1 背包,状态表示在双重限制下能获得的最大卡路里。 | luogu | P1507 | 普及/提高- | 2026-06-19 13:57 | 打开 | |
设 dp[diff] 为当前两塔高度差为 diff 时较矮塔的最大高度,每个木块枚举放高塔、放低塔或不用即可完成差值 DP。 | luogu | P1651 | 普及+/提高 | 2026-06-19 13:53 | 打开 | |
把双方马速排序后用双指针贪心:能用最快赢最快就赢,否则争取最慢赢最慢,再不行就用最慢去消耗对方最快。 | luogu | P1650 | 普及/提高- | 2026-06-19 13:50 | 打开 | |
只关注最终会成为匹配点的元素,若两个匹配点之间原数组位置差足够填满目标位置差,就能做 O(n^2) 动态规划。 | luogu | P1799 | 普及/提高- | 2026-06-19 13:46 | 打开 | |
把最后两位数字当作状态,按位转移时只检查新形成的三位数是否为素数,从而用 O(n) 统计答案。 | luogu | P2359 | 普及+/提高 | 2026-06-19 13:36 | 打开 | |
把出现在限制边中的球员和 1 号球员单独作为特殊点,其余球员合并成一个普通组,做 m 轮压缩 DP。 | luogu | P5888 | 普及+/提高 | 2026-06-19 13:31 | 打开 | |
设 dp[i][j] 为前 i 辆车恰好送走 j 个人的最小花费,枚举当前车上 0..Z_i 个人做费用转移。 | luogu | P1977 | 普及- | 2026-06-19 13:21 | 打开 | |
把相邻给定点之间需要补的新增点数当作代价,做 O(n^2k) 的点列 DP,先最大化能选到的给定点数量,答案再加上 k。 | luogu | P8816 | 普及+/提高 | 2026-06-19 13:10 | 打开 | |
按列做动态规划,列内路径方向只能单调向上或单调向下,用两次扫描维护每一行结束时的最大和。 | luogu | P7074 | 普及+/提高 | 2026-06-19 13:05 | 打开 | |
先按长度降序、同长度按宽度降序排序,再在宽度序列上求最长严格上升子序列长度,它等于最少需要开的加工链数。 | luogu | P1233 | 普及/提高- | 2026-06-19 12:53 | 打开 | |
设 dp[i][j] 表示前 i 个苹果放进 j 个非空篮子的方案数,第 i 个苹果要么单独开新篮子,要么放进 j 个旧篮子之一。 | luogu | P2028 | 普及/提高- | 2026-06-19 12:47 | 打开 | |
设 `dp[i][j]` 为两条序列前缀的最大相似度,最后一列只会来自字符对字符、字符对空位、空位对字符三种转移。 | luogu | P1140 | 普及/提高- | 2026-06-19 12:22 | 打开 | |
设 dp[l][r][t] 表示区间内恰好用 t 个乘号的最大值,转移时枚举最后一次运算是加号还是乘号。 | luogu | P1388 | 普及/提高- | 2026-06-19 12:14 | 打开 | |
按高度排序后,设 `dp[i][j]` 为保留 i 本且最后一本是第 j 本时的最小不整齐度,枚举上一本转移。 | luogu | P1103 | 普及/提高- | 2026-06-19 12:07 | 打开 | |
设 `dp[i][j]` 为前 j 天结束后走完前 i 段路的最小疲劳值,每天在“休息”和“前进一段”之间转移。 | luogu | P3399 | 普及/提高- | 2026-06-19 12:02 | 打开 | |
把问题看成最长摆动子序列,线性扫描相邻高度差值,只在第一次出现趋势或趋势符号变化时增加答案。 | luogu | P1970 | 普及/提高- | 2026-06-19 11:56 | 打开 | |
设 `dp[i][j]` 表示传了 i 次后球在 j 号同学手里的方案数,当前位置只会从左右相邻同学转移而来。 | luogu | P1057 | 普及- | 2026-06-19 11:53 | 打开 | |
设 `dp[i]` 表示前 i 头牛最多能分成多少组,枚举最后一组起点并用前缀和判断区间和是否非负。 | luogu | P1569 | 普及/提高- | 2026-06-19 11:47 | 打开 | |
只维护数字 k 出现次数的奇偶性,按位递推偶数态和奇数态方案数,预处理后每次询问 O(1) 输出。 | luogu | P7158 | 普及/提高- | 2026-06-19 11:42 | 打开 | |
设 `dp[i]` 为必须以第 i 天结尾的最大连续利润,递推 `dp[i]=max(a[i],dp[i-1]+a[i])` 后取最大值。 | luogu | P3009 | 普及- | 2026-06-19 11:38 | 打开 | |
把“是否刚跳过”当成 DP 状态,分别维护当前可跳和当前疲惫两种最小花费,按层线性转移。 | luogu | P2800 | 普及/提高- | 2026-06-19 11:34 | 打开 | |
把题目看成分层 DAG,设 `dp[i][j]` 为到达第 i 层第 j 个星球的最小花费,按层枚举前驱转移即可。 | luogu | P1796 | 普及/提高- | 2026-06-19 11:28 | 打开 | |
枚举分界点,统计前缀里需要改成 1 的 2 的数量和后缀里需要改成 2 的 1 的数量,取最小值。 | luogu | P2837 | 普及- | 2026-06-19 11:22 | 打开 | |
把 5 的个数当作枚举量,利用 `b ≡ n (mod 4)` 直接统计满足 `4a+5b=n` 的非负整数解个数。 | luogu | P8395 | 入门 | 2026-06-19 11:15 | 打开 | |
把出租站看成 DAG 上的点,按编号顺序做最短路/动态规划,转移到所有更下游的站点。 | luogu | P1359 | 普及- | 2026-06-19 11:10 | 打开 | |
用一维动态规划维护以每个位置结尾的最大子段和,最后取所有状态的最大值。 | luogu | P1115 | 普及- | 2026-06-19 11:07 | 打开 | |
用二维动态规划维护走到每个位置的最大路径和,状态只来自上一层相邻两个位置。 | luogu | P1216 | 入门 | 2026-06-19 11:04 | 打开 | |
把每一步在每个小组的最小代价做成阶段型 DP,状态只可能来自本组或前一组。 | luogu | P1130 | 普及- | 2026-06-19 11:01 | 打开 | |
把偶数行偶数列的格子视为障碍,用标准二维动态规划统计从左上到右下的路径数。 | luogu | P8707 | 入门 | 2026-06-19 10:57 | 打开 | |
先严格校验地址串格式,再用映射表维护成功服务机地址与编号,按顺序处理建立和加入连接。 | luogu | P7911 | 普及/提高- | 2026-06-19 10:41 | 打开 | |
逐行扫描字符串,按“后面是数字且前面不是数字”的规则识别负号并提取所有整数求和。 | luogu | P6051 | 普及- | 2026-06-19 10:38 | 打开 | |
按字母顺序统计并模拟三个提示过程:先全隐藏,再显示前 1/3,最后显示剩余元音或改为显示前 2/3。 | luogu | P3880 | 普及- | 2026-06-19 10:34 | 打开 | |
线性扫描方程字符串,分别统计未知数系数和常数和,整理成一元一次方程后直接求解。 | luogu | P1022 | 普及- | 2026-06-19 10:31 | 打开 | |
枚举所有可能的重合长度,分别检查两个方向的“后缀等于前缀”,取最大合法长度。 | luogu | P2957 | 入门 | 2026-06-19 10:28 | 打开 | |
从右往左看每个位置的强制翻转决策,可化简为统计相邻字符变化次数,再看末位是否为 0。 | luogu | P2708 | 普及- | 2026-06-19 10:26 | 打开 | |
用正则提取带符号分数,并交给 fractions.Fraction 自动完成精确运算与约分。 | luogu | P1572 | 入门 | 2026-06-19 10:22 | 打开 |