题目列表
可按标题、OJ、标签和启发记录快速筛选题目解析。
| OJ | 题号 | 标题 | 标签 | 难度 | 最后更新 | 解析 |
|---|---|---|---|---|---|---|
P1030 | 利用后序末尾字符确定根,再在中序里切出左右子树区间,递归按根左右顺序输出先序遍历。 | 普及- | 2026-10-07 10:45 | |||
P1087 | 递归处理每个二分区间,先输出左右子树结果,再用区间内 0/1 的分布判定当前结点类型。 | 普及- | 2026-10-07 10:45 | |||
P1827 | 利用前序首字符确定根,再在中序里切出左右子树区间,递归按左右根顺序输出后序遍历。 | 普及- | 2026-10-07 10:45 | |||
P5663 | 把问题转成从 1 到 a 是否存在长度恰好为 L 的游走,用奇偶分层图 BFS 求最短同奇偶步数。 | 普及+/提高- | 2026-10-07 10:45 | |||
P1294 | 把已访问顶点压成二进制集合,设 dp[mask][u] 表示走过 mask 且停在 u 时的最大路程。 | 普及- | 2026-10-07 10:45 | |||
P1330 | 每条边必须恰好有一个端点被选,因此图必须二分染色;每个连通块取两种颜色中较少的一侧。 | 普及 | 2026-10-07 10:45 | |||
P8605 | 固定路径中间的有向边,左右两端独立从两侧端点的其余邻居中选择,边贡献就是两个度数减一的乘积。 | 普及- | 2026-10-07 10:45 | |||
P8675 | 把每一层看成连续区间,设 dp[l][r] 表示上一层支撑区间为 [l,r] 的方案数,再用区间包含和转到下一层。 | 普及+/提高- | 2026-10-07 10:45 | |||
P2426 | 设 dp[l][r] 表示删光当前区间 [l, r] 的最大收益,枚举这一步从左端或右端删掉多长的一段。 | 普及 | 2026-10-07 10:45 | |||
P2858 | 设 dp[l][r] 表示卖掉区间外所有零食后,剩余区间 [l, r] 能取得的最大收益,按当前天数转移左右端点。 | 普及 | 2026-10-07 10:45 | |||
P1156 | 按时间排序后,用高度状态记录最晚存活时间,逐个垃圾做吃或堆的转移。 | 普及+/提高- | 2026-10-07 10:45 | |||
P5662 | 把相邻两天的价格差当作收益,按每天做一次完全背包,逐步更新手里的金币。 | 普及+/提高- | 2026-10-07 10:45 | |||
P2725 | 用完全背包求每个面值的最少邮票数,再扫描最长连续可达前缀。 | 普及- | 2026-10-07 10:45 | |||
P2340 | 用偏移数组做 01 背包,记录智商和对应的最大情商,再在非负状态里取最大总和。 | 普及 | 2026-10-07 10:45 | |||
P1077 | 用前缀和优化的多重背包计数 DP,统计每种花最多取 a_i 盆时的摆放方案数。 | 普及- | 2026-10-07 10:45 | |||
P1504 | 把每座城堡能保留的高度看成前缀和,取所有城堡共同可达的最大高度。 | 普及- | 2026-10-07 10:45 | |||
P1509 | 用二维 01 背包同时记录最多能泡到的 MM 数和对应的最少时间。 | 普及 | 2026-10-07 10:45 | |||
P1853 | 先用完全背包求出一年内的最优收益,再按年份滚动更新总资产。 | 普及 | 2026-10-07 10:45 | |||
P2722 | 把每种题目看成可重复物品,按耗时做一维完全背包,求不超过 T 的最大总分。 | 普及- | 2026-10-07 10:45 | |||
P1832 | 把每个素数看成可以重复使用的物品,按整数 n 做一维完全背包,统计凑出 n 的组合方案数。 | 普及- | 2026-10-07 10:45 | |||
P1616 | 把每种草药看成可以重复选的物品,按时间做一维完全背包,容量正序枚举维护最大价值。 | 普及- | 2026-10-07 10:45 | |||
P2871 | 把每个物品看成只能选一次的背包物品,按容量做一维 0/1 背包,维护不超过 M 时的最大价值。 | 普及- | 2026-10-07 10:45 | |||
P2925 | 把每捆草的体积同时看成重量和价值,用一维 0/1 背包求不超过容量 C 的最大总体积。 | 普及- | 2026-10-07 10:45 | |||
P2639 | 把每捆干草的重量同时看成重量和价值,用一维 0/1 背包求不超过 H 的最大总重量。 | 普及- | 2026-10-07 10:45 | |||
P1877 | 设 dp[i][v] 表示调完前 i 次后音量 v 是否可达,按加减两种转移,最后从大到小找最大可达音量。 | 普及- | 2026-10-07 10:45 | |||
P2347 | 把有限枚砝码逐个展开成 0/1 物品,按总重量做布尔可达性背包,最后统计所有可达的正整数重量。 | 普及- | 2026-10-07 10:45 | |||
P1734 | 先预处理每个正整数的真约数和,再把数字本身当重量、真约数和当价值,做一维 0/1 背包求最大总价值。 | 普及- | 2026-10-07 10:45 | |||
P1060 | 先把每件物品的收益算成价格乘重要度,再按预算做一维 0/1 背包,维护不超过预算时的最大满意度。 | 普及- | 2026-10-07 10:45 | |||
P1049 | 把每个物品的体积同时看成重量和收益,先用一维 0/1 背包求最大可装体积,再用 V 减去它得到最小剩余空间。 | 普及- | 2026-10-07 10:45 | |||
P1510 | 把每块木石看成只能用一次的物品,按体积做最小代价背包,并把超过目标体积的状态统一截断到 v。 | 普及- | 2026-10-07 10:45 | |||
P1910 | 把每个候选人看成价值为资料量的 0/1 物品,用探查风险和工资作为两维容量,做二维费用背包求最大资料量。 | 普及- | 2026-10-07 10:45 | |||
P1855 | 把每个愿望看成价值为 1 的物品,用金钱和时间作为两维容量,做二维费用 0/1 背包求最多能完成多少个愿望。 | 普及- | 2026-10-07 10:45 | |||
P2663 | 把分队问题转成恰好选 n/2 人、总分不超过总和一半的二维 01 背包,在可达状态里倒序找最大和。 | 普及- | 2026-10-07 10:45 | |||
P1507 | 把体积和质量分别作为两维容量,做二维 0/1 背包,状态表示在双重限制下能获得的最大卡路里。 | 普及- | 2026-10-07 10:45 | |||
P1388 | 设 dp[l][r][t] 表示区间内恰好用 t 个乘号的最大值,转移时枚举最后一次运算是加号还是乘号。 | 普及+/提高- | 2026-10-07 10:45 | |||
P3399 | 设 `dp[i][j]` 为前 j 天结束后走完前 i 段路的最小疲劳值,每天在“休息”和“前进一段”之间转移。 | 普及 | 2026-10-07 10:45 | |||
P1970 | 把问题看成最长摆动子序列,线性扫描相邻高度差值,只在第一次出现趋势或趋势符号变化时增加答案。 | 普及 | 2026-10-07 10:45 | |||
P1057 | 设 `dp[i][j]` 表示传了 i 次后球在 j 号同学手里的方案数,当前位置只会从左右相邻同学转移而来。 | 普及- | 2026-10-07 10:45 | |||
P7158 | 只维护数字 k 出现次数的奇偶性,按位递推偶数态和奇数态方案数,预处理后每次询问 O(1) 输出。 | 普及- | 2026-10-07 10:45 | |||
P3009 | 设 `dp[i]` 为必须以第 i 天结尾的最大连续利润,递推 `dp[i]=max(a[i],dp[i-1]+a[i])` 后取最大值。 | 普及- | 2026-10-07 10:45 | |||
P2800 | 把“是否刚跳过”当成 DP 状态,分别维护当前可跳和当前疲惫两种最小花费,按层线性转移。 | 普及- | 2026-10-07 10:45 | |||
P1796 | 把题目看成分层 DAG,设 `dp[i][j]` 为到达第 i 层第 j 个星球的最小花费,按层枚举前驱转移即可。 | 普及- | 2026-10-07 10:45 | |||
P2837 | 枚举分界点,统计前缀里需要改成 1 的 2 的数量和后缀里需要改成 2 的 1 的数量,取最小值。 | 普及- | 2026-10-07 10:45 | |||
P8395 | 把 5 的个数当作枚举量,利用 `b ≡ n (mod 4)` 直接统计满足 `4a+5b=n` 的非负整数解个数。 | 入门 | 2026-10-07 10:45 | |||
P1359 | 把出租站看成 DAG 上的点,按编号顺序做最短路/动态规划,转移到所有更下游的站点。 | 普及- | 2026-10-07 10:45 | |||
P1115 | 用一维动态规划维护以每个位置结尾的最大子段和,最后取所有状态的最大值。 | 普及- | 2026-10-07 10:45 | |||
P1216 | 用二维动态规划维护走到每个位置的最大路径和,状态只来自上一层相邻两个位置。 | 入门 | 2026-10-07 10:45 | |||
P1130 | 把每一步在每个小组的最小代价做成阶段型 DP,状态只可能来自本组或前一组。 | 普及- | 2026-10-07 10:45 | |||
P8707 | 把偶数行偶数列的格子视为障碍,用标准二维动态规划统计从左上到右下的路径数。 | 入门 | 2026-10-07 10:45 | |||
P7911 | 先严格校验地址串格式,再用映射表维护成功服务机地址与编号,按顺序处理建立和加入连接。 | 普及 | 2026-10-07 10:45 | |||
P6051 | 逐行扫描字符串,按“后面是数字且前面不是数字”的规则识别负号并提取所有整数求和。 | 普及- | 2026-10-07 10:45 | |||
P3880 | 按字母顺序统计并模拟三个提示过程:先全隐藏,再显示前 1/3,最后显示剩余元音或改为显示前 2/3。 | 普及- | 2026-10-07 10:45 | |||
P1022 | 线性扫描方程字符串,分别统计未知数系数和常数和,整理成一元一次方程后直接求解。 | 普及- | 2026-10-07 10:45 | |||
P2957 | 枚举所有可能的重合长度,分别检查两个方向的“后缀等于前缀”,取最大合法长度。 | 入门 | 2026-10-07 10:45 | |||
P2708 | 从右往左看每个位置的强制翻转决策,可化简为统计相邻字符变化次数,再看末位是否为 0。 | 普及- | 2026-10-07 10:45 | |||
P1572 | 用正则提取带符号分数,并交给 fractions.Fraction 自动完成精确运算与约分。 | 入门 | 2026-10-07 10:45 | |||
P1104 | 把生日和输入顺序组成排序键,按年月日升序、同生日后输入在前输出姓名。 | 普及- | 2026-10-07 10:45 | |||
P1098 | 逐字符扫描字符串,遇到减号时按可展开性、字符变换、重复次数和正逆序规则做分类模拟。 | 普及- | 2026-10-07 10:45 | |||
P1067 | 按次数从高到低扫描非零项,分类处理首项符号、系数 1 和指数 0/1/>1 的输出格式。 | 入门 | 2026-10-07 10:45 | |||
P6382 | 先判断是不是 `MDA` 本地车;若是,就从右往左找第一个数字作为尾号,再按星期对应的尾号规则输出 5 天限行情况。 | 入门 | 2026-10-07 10:45 |