题目列表
可按标题、OJ、标签和启发记录快速筛选题目解析。
| 标题 | OJ | 题号 | 标签 | 难度 | 最后更新 | 原题 |
|---|---|---|---|---|---|---|
在 DAG 上按拓扑序传播精确分数流量,每个点把当前污水均分给所有出边,最后统计所有汇点的分数结果。 | luogu | P7113 | 普及+/提高 | 2026-06-19 23:32 | 打开 | |
按拓扑序模拟神经元信号传播,只有 `C[i] > 0` 的点才向后继传值,非输入层先扣掉自己的阈值。 | luogu | P1038 | 普及+/提高 | 2026-06-19 23:24 | 打开 | |
把记忆约束建成带权 DAG,在拓扑序上做最长路转移,`dp[i]` 表示第 i 次挤奶能安排的最早日期。 | luogu | P6145 | 普及/提高- | 2026-06-19 23:19 | 打开 | |
把先后约束建成 DAG,在拓扑序上做最长路 DP,`dp[i]` 表示完成第 i 头奶牛的最早结束时间。 | luogu | P3074 | 普及/提高- | 2026-06-19 23:15 | 打开 | |
把“某摄像头所在位置被别的摄像头监视”建成有向边,反复删除入度为 0 的点,最后剩下的摄像头数就是答案。 | luogu | P2712 | 普及/提高- | 2026-06-19 22:59 | 打开 | |
把每条推荐规则看成依赖一组前提题的规则节点,维护未满足前提数和前提最大完成天数,单调传播每道题的最早完成日。 | luogu | P8893 | 普及+/提高 | 2026-06-19 22:45 | 打开 | |
利用每条边都从小编号指向大编号的天然拓扑序,按编号进行 DAG 最长路 DP。 | luogu | P1807 | 普及/提高- | 2026-06-19 22:41 | 打开 | |
分别用显式栈模拟前序、中序、后序遍历,其中后序用双栈避免深递归爆栈。 | luogu | B3642 | 入门 | 2026-06-19 22:38 | 打开 | |
统计前序相邻且在后序中反向相邻的父子对个数,每出现一个这样的单孩子歧义点,答案就乘 2。 | luogu | P1229 | 普及/提高- | 2026-06-19 22:30 | 打开 | |
把每种宝物的件数做二进制拆分,转成若干件 0/1 物品后,再做一维 0/1 背包。 | luogu | P1776 | 普及+/提高 | 2026-06-19 22:22 | 打开 | |
先按后缀表达式建树并求当前值,再从根向下传播“能否影响根”的标记,这样每个翻转询问都能 O(1) 回答。 | luogu | P7073 | 普及+/提高 | 2026-06-19 21:43 | 打开 | |
后序计算每棵子树的正常表示和镜像表示,若二者相等则该子树对称,再用子树大小更新最大答案。 | luogu | P5018 | 普及+/提高 | 2026-06-19 21:24 | 打开 | |
把“有相同萌元素”转成“有公共质因子”,每次修改后整树 DFS,沿根路径按质因子维护最近祖先栈即可回答所有查询。 | luogu | P2441 | 提高+/省选- | 2026-06-19 21:10 | 打开 | |
先按优先级把中缀表达式建成语法树,再用显式栈按短路语义迭代求值,只统计真正访问到的子树里的短路次数。 | luogu | P8815 | 普及+/提高 | 2026-06-19 20:55 | 打开 | |
用有序集合维护已插入节点,只看当前值的前驱和后继,取插入更晚者为父亲,再迭代输出后序遍历和最大深度。 | luogu | P2171 | 普及+/提高 | 2026-06-19 20:27 | 打开 | |
利用后序末尾字符确定根,再在中序里切出左右子树区间,递归按根左右顺序输出先序遍历。 | luogu | P1030 | 普及- | 2026-06-19 20:15 | 打开 | |
递归处理每个二分区间,先输出左右子树结果,再用区间内 0/1 的分布判定当前结点类型。 | luogu | P1087 | 普及- | 2026-06-19 20:00 | 打开 | |
利用前序首字符确定根,再在中序里切出左右子树区间,递归按左右根顺序输出后序遍历。 | luogu | P1827 | 普及/提高- | 2026-06-19 19:52 | 打开 | |
把状态设成 (点, 当前时刻 mod k),在状态图上跑 Dijkstra,转移时把时间补到不早于开放时刻且同余不变的最早值。 | luogu | P9751 | 普及+/提高 | 2026-06-19 19:45 | 打开 | |
把问题转成从 1 到 a 是否存在长度恰好为 L 的游走,用奇偶分层图 BFS 求最短同奇偶步数。 | luogu | P5663 | 普及+/提高 | 2026-06-19 19:38 | 打开 | |
把已访问顶点压成二进制集合,设 dp[mask][u] 表示走过 mask 且停在 u 时的最大路程。 | luogu | P1294 | 普及+/提高 | 2026-06-19 19:33 | 打开 | |
每条边必须恰好有一个端点被选,因此图必须二分染色;每个连通块取两种颜色中较少的一侧。 | luogu | P1330 | 普及+/提高 | 2026-06-19 19:29 | 打开 | |
先把每个点的邻接表按升序排序,再用逆序压栈实现非递归 DFS,用队列实现 BFS。 | luogu | P5318 | 入门 | 2026-06-19 19:24 | 打开 | |
先用 Tarjan 建圆方树,再统计 x 到 y 在圆方树路径上经过了多少个原图割点。 | luogu | P8604 | 普及+/提高 | 2026-06-19 19:20 | 打开 | |
固定路径中间的有向边,左右两端独立从两侧端点的其余邻居中选择,边贡献就是两个度数减一的乘积。 | luogu | P8605 | 普及+/提高 | 2026-06-19 19:16 | 打开 | |
给释放名单两端补哨兵,设 dp[l][r] 表示释放两边界之间所有目标囚犯的最小代价,枚举第一个释放点。 | luogu | P1622 | 普及+/提高 | 2026-06-19 19:12 | 打开 | |
把每一层看成连续区间,设 dp[l][r] 表示上一层支撑区间为 [l,r] 的方案数,再用区间包含和转到下一层。 | luogu | P8675 | 普及+/提高 | 2026-06-19 19:05 | 打开 | |
设 dp[l][r][0/1] 表示已构成目标区间 [l,r] 且最后插入的人在左端或右端时的方案数,按大小关系向两侧扩张。 | luogu | P3205 | 普及+/提高 | 2026-06-19 19:00 | 打开 | |
设 dp[l][r] 表示把目标子串 s[l..r] 涂出来的最少次数,若后面有与 s[l] 相同的字符,就尝试共用一次涂色。 | luogu | P4170 | 普及+/提高 | 2026-06-19 18:55 | 打开 | |
设 dp[l][r] 表示区间 [l, r] 整体能合成出的最大值,枚举最后一次合并的断点,把两个相等子区间向上合并。 | luogu | P3146 | 普及+/提高 | 2026-06-19 18:51 | 打开 | |
设 dp[i][v] 表示从位置 i 开始最短到哪里能合成值 v,利用两个相邻的 v-1 递推出更大的值。 | luogu | P3147 | 普及+/提高 | 2026-06-19 18:46 | 打开 | |
先断环成链并复制数组,再设 dp[l][r] 表示一段珠子聚合后的最大能量,枚举最后一次合并的断点。 | luogu | P1063 | 普及+/提高 | 2026-06-19 18:40 | 打开 | |
设 dp[l][r] 表示删光当前区间 [l, r] 的最大收益,枚举这一步从左端或右端删掉多长的一段。 | luogu | P2426 | 普及/提高- | 2026-06-19 18:36 | 打开 | |
设 dp[l][r] 表示卖掉区间外所有零食后,剩余区间 [l, r] 能取得的最大收益,按当前天数转移左右端点。 | luogu | P2858 | 普及/提高- | 2026-06-19 18:31 | 打开 | |
设区间 dp[l][r] 表示一段石子合并成一堆的最小代价,枚举最后一次合并的断点并用前缀和计算区间总和。 | luogu | P1775 | 普及/提高- | 2026-06-19 18:22 | 打开 | |
按时间排序后,用高度状态记录最晚存活时间,逐个垃圾做吃或堆的转移。 | luogu | P1156 | 普及+/提高 | 2026-06-19 18:02 | 打开 | |
把每个城堡的对手兵力排序并合并相同值,转成若干个阈值台阶,再做分组背包求最大得分。 | luogu | P5322 | 普及+/提高 | 2026-06-19 17:51 | 打开 | |
把每个英雄的皮肤选择看成分组背包,按总花费做 DP,记录最多能得到多少种展示方式。 | luogu | P5365 | 普及+/提高 | 2026-06-19 17:40 | 打开 | |
把相邻两天的价格差当作收益,按每天做一次完全背包,逐步更新手里的金币。 | luogu | P5662 | 普及+/提高 | 2026-06-19 17:24 | 打开 | |
按 P_i 区分完全背包和多重背包,先二进制拆分再做一维最大值 DP。 | luogu | P1833 | 普及/提高- | 2026-06-19 17:08 | 打开 | |
用完全背包求每个面值的最少邮票数,再扫描最长连续可达前缀。 | luogu | P2725 | 普及- | 2026-06-19 16:59 | 打开 | |
先按允许高度排序,再用多重 01 背包判断哪些电梯高度可达。 | luogu | P6771 | 普及+/提高 | 2026-06-19 16:51 | 打开 | |
用偏移数组做 01 背包,记录智商和对应的最大情商,再在非负状态里取最大总和。 | luogu | P2340 | 普及+/提高 | 2026-06-19 16:42 | 打开 | |
用前缀和优化的多重背包计数 DP,统计每种花最多取 a_i 盆时的摆放方案数。 | luogu | P1077 | 普及- | 2026-06-19 16:34 | 打开 | |
把每座城堡能保留的高度看成前缀和,取所有城堡共同可达的最大高度。 | luogu | P1504 | 普及- | 2026-06-19 16:28 | 打开 | |
用二维 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 | 打开 |