题目列表
可按标题、OJ、标签和启发记录快速筛选题目解析。
| OJ | 题号 | 标题 | 标签 | 难度 | 最后更新 | 解析 |
|---|---|---|---|---|---|---|
P1984 | 证明每杯水在第一次烧开前最多只值得被预热到 50 度,于是总温度增量是 100 加上其余 n-1 杯各 50。 | 普及+/提高- | 2026-10-07 10:45 | |||
P3496 | 先判图中是否有孤立点;若没有,就对每个连通块的生成树二染色,直接构造两个互不重叠的覆盖方案。 | 普及+/提高- | 2026-10-07 10:45 | |||
P1363 | 在模板范围内搜索,并记录每个模格子第一次对应的绝对坐标;若同一模格子被不同绝对坐标到达,就能无限走远。 | 普及+/提高- | 2026-10-07 10:45 | |||
P1126 | 把机器人所在格点和朝向一起作为状态做 BFS,并预处理中心能否站在某个格点。 | 普及+/提高- | 2026-10-07 10:45 | |||
P9588 | 把每次插入的 1..x 压成一个块,只维护块前缀删除量;第 z 个元素和最大值都转成块级查询。 | 普及+/提高- | 2026-10-07 10:45 | |||
P4343 | 阈值 n 固定时顺着日志模拟能 AC 的题数,它随 n 单调不增,因此二分出所有满足 count(n)=k 的整数区间。 | 普及+/提高- | 2026-10-07 10:45 | |||
P4536 | 把问题拆成沿三条边分别递归找邻居:父内能直接找到就替换末位,否则沿同向边递归向父三角形外查。 | 普及+/提高- | 2026-10-07 10:45 | |||
P1542 | 二分最大速度,给定速度后顺着维护每个地点可行签收时间区间的下界,线性判断是否能按时送完。 | 普及 | 2026-10-07 10:45 | |||
P8590 | 固定 m 时最优加数只会是前缀全加 1、后缀全加 m,再把每个位置对所有 m 的正增量独立求和。 | 提高+/省选- | 2026-10-07 10:45 | |||
P2671 | 把三元组化成同颜色同奇偶的端点对,再按颜色和奇偶分组维护四个历史统计量线性求和。 | 普及+/提高- | 2026-10-07 10:45 | |||
P1016 | 按距离排序后做站点贪心:若前方有更便宜站就只买到够到它,否则当前站加满并去可达范围内最低价站。 | 普及 | 2026-10-07 10:45 | |||
P3952 | 用栈维护循环嵌套、死循环深度和当前有效幂次,线性扫描判断语法并求真实复杂度。 | 普及+/提高- | 2026-10-07 10:45 | |||
P2119 | 固定差值 q,把四元组化成左右两类值对,再用前缀累计和后缀累计统计四种位置贡献。 | 普及+/提高- | 2026-10-07 10:45 | |||
P9975 | 先由最终连续感染段反推全局最多传播了多少晚,再把每段连续 1 按单个初始感染点最多覆盖的长度分组计数。 | 普及 | 2026-10-07 10:45 | |||
P1638 | 用双指针维护一个覆盖全部画家编号的最短区间;右端扩张凑齐种类,左端尽量收缩。 | 普及- | 2026-10-07 10:45 | |||
P3173 | 把横切和竖切代价分别降序排序,每次优先切当前代价更大的那一刀,让大的代价尽量在乘数更小的时候付出。 | 普及+/提高- | 2026-10-07 10:45 | |||
P1114 | 把一种性别记成 +1、另一种记成 -1,问题就转成最长和为 0 的子数组;记录每个前缀和第一次出现的位置即可。 | 普及- | 2026-10-07 10:45 | |||
P8873 | 先求出第 i 段长度前缀和为 (i+1)(2i+1),二分定位 k 落在哪一段,再按段内位置分段计算数值。 | 普及 | 2026-10-07 10:45 | |||
P7076 | 先用现有动物的按位或找出已出现过的二进制位,再把仍会引入新饲料的位置并成危险位,最后按自由位数量直接计数。 | 普及+/提高- | 2026-10-07 10:45 | |||
P1199 | 把每个武将所在行的次大默契值看成他起手后能保住的最强搭档,再取所有次大值的最大者;同时用高边构成匹配证明小涵一定能赢。 | 普及 | 2026-10-07 10:45 | |||
P1056 | 把每一对会说话的同学映射到唯一的一条横缝或竖缝,分别统计每条缝的贡献次数后,各自取前 K 条和前 L 条即可。 | 普及- | 2026-10-07 10:45 | |||
P1025 | 把数字 1..n 看成可重复使用的物品,按数字大小做组合计数版完全背包,用 dp[sum][cnt] 统计和与份数。 | 普及 | 2026-10-07 10:45 | |||
P1976 | 固定一个点后枚举它与谁配对,这条线会把圆拆成左右两个互不相交的子问题,于是得到标准 Catalan 递推。 | 普及 | 2026-10-07 10:45 | |||
P1044 | 把操作过程抽象成还未入栈数量和当前栈大小,用记忆化搜索统计合法 push/pop 序列。 | 普及- | 2026-10-07 10:45 | |||
P1722 | 把红筹和黑筹分别看成左括号与右括号,用前缀差值 dp[i][bal] 统计合法前缀数量,再用高精度加法保存第 n 个 Catalan 数。 | 普及- | 2026-10-07 10:45 | |||
P5505 | 先把每种特产独立看成隔板法分配,再对空同学集合做容斥,枚举有多少人没分到东西并扣掉这些不合法方案。 | 提高+/省选- | 2026-10-07 10:45 | |||
P6076 | 把空行、空列、缺失颜色都当成坏事件做三重容斥,固定保留行列和可用颜色数后,每个剩余格子独立贡献 avail 种选择。 | 提高+/省选- | 2026-10-07 10:45 | |||
P6162 | 先写出原题的 O(nk) 计数 DP,再把状态改写成第二类 Stirling 数,最后用满射计数的容斥公式在线性预处理后求出 S(n,n-k)。 | 提高+/省选- | 2026-10-07 10:45 | |||
P5664 | 先算每种做法任选或不选的总方案数,再按食材枚举严格多数者,用差值 DP 统计坏方案并从总数中扣掉。 | 提高+/省选- | 2026-10-07 10:45 | |||
P6299 | 把原式改写成 |(a+bi)(p-qi)+(c+di)(r+si)|^2,在高斯整数环里用扩展欧几里得求 gcd 和贝祖系数。 | 省选/NOI- | 2026-10-07 10:45 | |||
P1082 | 把 ax≡1(mod b) 改写成 ax+by=1,用扩展欧几里得求出一组解,其中 x 在模 b 意义下的最小正值就是答案。 | 普及+/提高- | 2026-10-07 10:45 | |||
P4042 | 设 f[i] 表示杀死一只 i 号怪兽的最小体力,满足 f[i]=min(K_i, S_i+Σf[spawn])。先把法术攻击代价当作初值,再从已确定更小代价的子怪兽反向更新父怪兽。 | 提高+/省选- | 2026-10-07 10:45 | |||
P2446 | 对每个城市分别维护“机器人最早能到城门的时间”和“所有前置发生器最晚被摧毁的时间”,城市真正被摧毁的时间是这两者的最大值,再用 Dijkstra 式过程按时间推进。 | 提高+/省选- | 2026-10-07 10:45 | |||
P3831 | 把每个关键交点拆成“横线状态”和“竖线状态”两个点;同一条线上的相邻关键点连边,换乘站内部连一条代价为 1 的边,再在这张图上跑最短路。 | 提高+/省选- | 2026-10-07 10:45 | |||
P2951 | 这是无权图单源最短路。先从 1 号点做 BFS,得到每个点的最短层数,再统计最远距离、最小编号和该距离出现次数。 | 普及- | 2026-10-07 10:45 | |||
P1529 | 牧场总数只有 52 个,把大小写字母映射成编号后直接 Floyd 求全源最短路,再在 A..Y 中找离 Z 最近的那头牛。 | 普及- | 2026-10-07 10:45 | |||
P1339 | 标准正权无向图单源最短路,直接从起点 s 跑一次 Dijkstra,输出到终点 t 的距离即可。 | 普及- | 2026-10-07 10:45 | |||
P2984 | 路线被强制经过 1 号牧场,所以先从 1 号点跑一次 Dijkstra,任意询问答案都是 dist[p] + dist[q]。 | 普及 | 2026-10-07 10:45 | |||
P8855 | 商人的总路程就是从首都出发后,相邻两站之间树上距离的总和;用倍增 LCA 快速求两点距离,再顺着给定路线累加即可。 | 普及+/提高- | 2026-10-07 10:45 | |||
P10113 | 一组员工都能被同一人管理,等价于这个人是他们的公共祖先;先求这组点的 LCA,再在根到该 LCA 的路径上取最大编号即可。 | 普及 | 2026-10-07 10:45 | |||
P3388 | 在无向图上跑一遍 Tarjan,若某个儿子 v 满足 low[v] >= dfn[u],就说明删掉 u 会让这棵子树断开;根节点还要单独判断子树个数。 | 普及+/提高- | 2026-10-07 10:45 | |||
P1656 | 把无向图做一遍 Tarjan,若树边 u-v 满足 low[v] > dfn[u],说明 v 子树回不到 u 及其祖先,这条边就是桥。 | 普及 | 2026-10-07 10:45 | |||
P2573 | 先求从 1 号景点出发能到达的全部景点;在这些点上按边的较低端高度降序、边长升序做 Kruskal,可以在保证可达景点数最大的前提下,把总滑行距离压到最小。 | 省选/NOI- | 2026-10-07 10:45 | |||
P2323 | 二分最大允许造价 T。对每个 T,只看二级造价不超过 T 的边是否能连通全图,再看一级造价不超过 T 的边最多能提供多少条一级公路,从而判断可行性。 | 省选/NOI- | 2026-10-07 10:45 | |||
P1340 | 每周只新增一条边,因此当前最小生成树只可能通过“接上一条新边”或“用新边替换环上的更大边”发生变化;维护最小生成森林即可在线输出答案。 | 提高+/省选- | 2026-10-07 10:45 | |||
P1265 | 题面按轮修路的过程本质是在构造欧几里得最小生成树,最终总长度就等于 MST 边长之和;点数较大时直接用 Prim 求解即可。 | 普及+/提高- | 2026-10-07 10:45 | |||
P2212 | 这是带门槛的最小生成树:只有距离平方不小于 c 的边允许使用,直接在完全图上做 Prim,若中途出现不可达点则答案不存在。 | 普及 | 2026-10-07 10:45 | |||
P1546 | 题目给的是完整邻接矩阵,直接用 Prim 维护每个未选点到当前生成树的最小连边代价,逐个把点加入生成树即可。 | 普及- | 2026-10-07 10:45 | |||
P1536 | 并查集合并已有道路并实时维护连通块数,最少新道路数就是连通块数减一。 | 入门 | 2026-10-07 10:45 | |||
P3367 | 用并查集维护若干元素所属的集合,操作 1 合并两个集合,操作 2 判断两个元素是否已经连通。 | 入门 | 2026-10-07 10:45 | |||
P2078 | 分别求出 A 公司里与 1 号同组的人数、B 公司里与 -1 号同组的人数,答案就是这两个连通块大小的较小值。 | 入门 | 2026-10-07 10:45 | |||
P8654 | 把每个格子看成一个点,出现连根关系就并查集合并两个编号,最后连通块数量就是合根植物的总株数。 | 入门 | 2026-10-07 10:45 | |||
P3243 | 把限制反向建图,用大根堆在反图上做拓扑排序,再把得到的序列倒过来输出,就能得到题目要求的最优顺序。 | 提高+/省选- | 2026-10-07 10:45 | |||
P1685 | 在 DAG 上同时维护从起点到每个点的路径条数和所有路径长度总和,最后加上每次重新坐船返回的固定时间。 | 普及+/提高- | 2026-10-07 10:45 | |||
P3074 | 把先后约束建成 DAG,在拓扑序上做最长路 DP,`dp[i]` 表示完成第 i 头奶牛的最早结束时间。 | 普及 | 2026-10-07 10:45 | |||
B3642 | 分别用显式栈模拟前序、中序、后序遍历,其中后序用双栈避免深递归爆栈。 | 入门 | 2026-10-07 10:45 | |||
P1229 | 统计前序相邻且在后序中反向相邻的父子对个数,每出现一个这样的单孩子歧义点,答案就乘 2。 | 普及 | 2026-10-07 10:45 | |||
P5018 | 后序计算每棵子树的正常表示和镜像表示,若二者相等则该子树对称,再用子树大小更新最大答案。 | 普及+/提高- | 2026-10-07 10:45 | |||
P2441 | 把“有相同萌元素”转成“有公共质因子”,每次修改后整树 DFS,沿根路径按质因子维护最近祖先栈即可回答所有查询。 | 提高+/省选- | 2026-10-07 10:45 | |||
P2171 | 用有序集合维护已插入节点,只看当前值的前驱和后继,取插入更晚者为父亲,再迭代输出后序遍历和最大深度。 | 普及+/提高- | 2026-10-07 10:45 |