题目列表
可按标题、OJ、标签和启发记录快速筛选题目解析。
| OJ | 题号 | 标题 | 标签 | 难度 | 最后更新 | 解析 |
|---|---|---|---|---|---|---|
P2224 | 把每个任务的选择压成 A 机器总时间这一维,设 dp[x] 表示 A 用时为 x 时 B 的最小用时,最后在所有状态里取 max(A,B) 的最小值。 | 普及+/提高- | 2026-08-09 06:46 | |||
P2497 | 把每个点看成按 x 坐标有向无环图上的一个状态,接收费用可整理成关于目标坐标 x 的直线,用 Li Chao Tree 维护左侧所有可转移点的最小值。 | 省选/NOI- | 2026-08-09 06:46 | |||
P2513 | 设 dp[i][j] 表示长度为 i、逆序对数为 j 的排列个数,再用插入最大值的转移和前缀和把求和优化到 O(nk)。 | 普及 | 2026-08-09 06:46 | |||
P1879 | 把每一行压成二进制状态,预处理单行合法状态后按行做状压 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 | 把完全二叉树的不完整部分压缩成“最后一个叶子到根”的一条路径,预处理满树方案数后沿这条路径自底向上递推。 | 提高+/省选- | 2026-08-09 06:46 | |||
P3174 | 把路径内部点的贡献化成 deg(u)-1,将答案转成树上最大点权路径和,再在结尾补上两个端点贡献。 | 提高+/省选- | 2026-08-09 06:46 | |||
P4362 | 设 dp[u][j][0/1] 表示子树内选 j 个点给大头且 u 是否属于大头的最小代价,按 M=2 与 M>=3 分别判断父子边是否计入答案。 | 提高+/省选- | 2026-08-09 06:46 | |||
P8744 | 设 dp[u] 为以 u 为根能得到的最大二叉树高度,把最深孩子放到兄弟链最后,就有转移 dp[u]=儿子数+max(dp[child])。 | 普及 | 2026-08-09 06:46 | |||
P8625 | 设 dp[u] 表示必须包含 u 的最优连通块和,自底向上只吸收正贡献子树,就能在线性时间求树上最大连通子图和。 | 普及 | 2026-08-09 06:46 | |||
P4344 | 在线段树中同时维护区间 1 的数量和最长连续 0,并用左优先递归把目标区间最靠前的若干个 0 填成 1。 | 提高+/省选- | 2026-08-09 06:46 | |||
P2146 | 把安装与卸载操作转成根到点路径设为 1、子树设为 0,再用树链剖分配合线段树维护区间赋值和区间和。 | 提高+/省选- | 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 的图,再做带父边与值域边界的记忆化搜索,分别取当前节点左右子树的最优解。 | 提高+/省选- | 2026-08-09 06:46 | |||
P1269 | 把树定根后自底向上维护子树向上延伸的最大未截断衰减,若某个儿子子树再经过父边就会达到或超过初始强度,就必须在该儿子处安装放大器。 | 提高+/省选- | 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 两个条件即可。 | 普及- | 2026-08-09 06:46 | |||
P1069 | 把目标试管数 M=m1^m2 分解成质因子需求,再看每种细胞的分裂因子 Si 每秒能提供多少对应指数,最早时间就是这些需求的最大上取整。 | 普及+/提高- | 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),避免模数不一定是质数时无法直接求逆元。 | 提高+/省选- | 2026-08-09 06:46 | |||
P7118 | 把题目的“更有趣”关系看成所有本质不同有序二叉树的全序,先按结点数分类,再递归计算同大小树中的字典序排名。 | 提高+/省选- | 2026-08-09 06:46 | |||
P1375 | 先识别出圆上不相交配对就是 Catalan 数,再用 Cn = Cn-1 * (4n-2) / (n+1) 的线性递推把 O(n^2) 优化到 O(n)。 | 普及 | 2026-08-09 06:46 | |||
P1754 | 把拿 50 元和拿 100 元的人分别看成前缀加一和减一,设 f(a,b) 统计剩余两类人数时的合法排队方案数。 | 普及 | 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。 | 普及+/提高- | 2026-08-09 06:46 | |||
P1650 | 把双方马速排序后用双指针贪心:能用最快赢最快就赢,否则争取最慢赢最慢,再不行就用最慢去消耗对方最快。 | 普及+/提高- | 2026-08-09 06:46 | |||
P1799 | 只关注最终会成为匹配点的元素,若两个匹配点之间原数组位置差足够填满目标位置差,就能做 O(n^2) 动态规划。 | 普及+/提高- | 2026-08-09 06:46 | |||
P2359 | 把最后两位数字当作状态,按位转移时只检查新形成的三位数是否为素数,从而用 O(n) 统计答案。 | 普及+/提高- | 2026-08-09 06:46 | |||
P5888 | 把出现在限制边中的球员和 1 号球员单独作为特殊点,其余球员合并成一个普通组,做 m 轮压缩 DP。 | 普及+/提高- | 2026-08-09 06:46 | |||
P1977 | 设 dp[i][j] 为前 i 辆车恰好送走 j 个人的最小花费,枚举当前车上 0..Z_i 个人做费用转移。 | 普及- | 2026-08-09 06:46 | |||
P7074 | 按列做动态规划,列内路径方向只能单调向上或单调向下,用两次扫描维护每一行结束时的最大和。 | 普及+/提高- | 2026-08-09 06:46 | |||
P2028 | 设 dp[i][j] 表示前 i 个苹果放进 j 个非空篮子的方案数,第 i 个苹果要么单独开新篮子,要么放进 j 个旧篮子之一。 | 普及 | 2026-08-09 06:46 | |||
P9553 | 按日期统计每天原计划首学人数,再把特殊日顺延和复习偏移都压成批量计数转移,避免逐单词模拟。 | 普及 | 2026-08-09 06:46 | |||
P2007 | 把六个面分别当作 3x3 数组,按题目定义逐步模拟四种转动,每步拆成侧面循环置换和本面旋转。 | 未知 | 2026-08-09 06:46 |