题目列表
可按标题、OJ、标签和启发记录快速筛选题目解析。
| 标题 | OJ | 题号 | 标签 | 难度 | 最后更新 | 原题 |
|---|---|---|---|---|---|---|
先判断愿望关系能否构成唯一的整环,再在正反两个环序中统计最优旋转能保留多少人不动,答案就是 n 减去这个最大值。 | luogu | P1053 | 普及+/提高 | 2026-06-20 17:14 | 打开 | |
先在反图上从终点标记可达点,再筛出所有安全点,最后只在安全子图中做 BFS 最短路。 | luogu | P2296 | 普及+/提高 | 2026-06-20 17:13 | 打开 | |
把树按深度分层后,按层搜索每轮在当前还会感染的点里切掉一个子树,最大化保住的人数。 | luogu | P1041 | 提高+/省选- | 2026-06-20 17:07 | 打开 | |
把输入串看成 BWT 的最后一列,排序得到第一列,再用同字符同出现次序建立 LF 映射,从 p 逆推原串。 | luogu | P1124 | 普及+/提高 | 2026-06-20 16:07 | 打开 | |
按冒号切成 8 组后分别去前导零,再找最前面的最长连续 0000 段,用一次 :: 替换即可。 | luogu | P2815 | 入门 | 2026-06-20 16:03 | 打开 | |
把 a 看成带最早开始时间的单位作业,用大根堆贪心生成最优等待时间,再把大等待与小 b 配对得到最小总代价。 | luogu | P6155 | 普及+/提高 | 2026-06-20 15:43 | 打开 | |
把合法区间改写成不存在 x_i>y_j 的冲突对,先用树状数组求每个位置的第一个冲突点,再用双指针维护最长合法区间。 | luogu | P3522 | 提高+/省选- | 2026-06-20 15:35 | 打开 | |
按位置排序后,分别用两次单调队列维护左右 D 范围内的最大高度,再判断是否都达到当前高度的两倍。 | luogu | P3088 | 普及/提高- | 2026-06-20 15:30 | 打开 | |
把横纵坐标按 n 分成完整块和残块,利用模 n 余数的一一配对,常数时间统计整块与右下角残块贡献。 | luogu | P10090 | 普及/提高- | 2026-06-20 15:25 | 打开 | |
按固定元素是否出现过来统计不同元素个数之和,把每个长度的贡献化成两段等比数列求和。 | luogu | P7355 | 普及/提高- | 2026-06-20 15:17 | 打开 | |
把 x 分解成质因子后,每个指数里完整的 3 个一组都能提出到根号外,因此答案是各质因子 p 的 floor(e/3) 次幂之积。 | luogu | P4446 | 普及+/提高 | 2026-06-20 15:10 | 打开 | |
证明每杯水在第一次烧开前最多只值得被预热到 50 度,于是总温度增量是 100 加上其余 n-1 杯各 50。 | luogu | P1984 | 普及/提高- | 2026-06-20 14:56 | 打开 | |
先判图中是否有孤立点;若没有,就对每个连通块的生成树二染色,直接构造两个互不重叠的覆盖方案。 | luogu | P3496 | 普及+/提高 | 2026-06-20 14:46 | 打开 | |
在模板范围内搜索,并记录每个模格子第一次对应的绝对坐标;若同一模格子被不同绝对坐标到达,就能无限走远。 | luogu | P1363 | 普及+/提高 | 2026-06-20 14:41 | 打开 | |
把机器人所在格点和朝向一起作为状态做 BFS,并预处理中心能否站在某个格点。 | luogu | P1126 | 普及+/提高 | 2026-06-20 14:36 | 打开 | |
先算原始积水,再把每个位置改低后真正受影响的左右连续区间拆开重算,从而在线性时间求最优修改。 | luogu | P9485 | 提高+/省选- | 2026-06-20 14:00 | 打开 | |
把每次插入的 1..x 压成一个块,只维护块前缀删除量;第 z 个元素和最大值都转成块级查询。 | luogu | P9588 | 普及+/提高 | 2026-06-20 13:55 | 打开 | |
排序后把每个人接到以前一实力值结尾的最短链上,否则新开一组,最后取所有链长最小值。 | luogu | P4447 | 普及+/提高 | 2026-06-20 13:47 | 打开 | |
阈值 n 固定时顺着日志模拟能 AC 的题数,它随 n 单调不增,因此二分出所有满足 count(n)=k 的整数区间。 | luogu | P4343 | 普及+/提高 | 2026-06-20 13:41 | 打开 | |
把问题拆成沿三条边分别递归找邻居:父内能直接找到就替换末位,否则沿同向边递归向父三角形外查。 | luogu | P4536 | 普及+/提高 | 2026-06-20 13:35 | 打开 | |
二分最大速度,给定速度后顺着维护每个地点可行签收时间区间的下界,线性判断是否能按时送完。 | luogu | P1542 | 普及+/提高 | 2026-06-20 13:31 | 打开 | |
把单个站点总代价看成绝对值和函数,先取中位数区间平台,再从左右两条单调代价序列中归并取前 k 小。 | luogu | P4998 | 普及+/提高 | 2026-06-20 13:25 | 打开 | |
固定 m 时最优加数只会是前缀全加 1、后缀全加 m,再把每个位置对所有 m 的正增量独立求和。 | luogu | P8590 | 提高+/省选- | 2026-06-20 13:19 | 打开 | |
把三元组化成同颜色同奇偶的端点对,再按颜色和奇偶分组维护四个历史统计量线性求和。 | luogu | P2671 | 普及/提高- | 2026-06-20 13:15 | 打开 | |
按距离排序后做站点贪心:若前方有更便宜站就只买到够到它,否则当前站加满并去可达范围内最低价站。 | luogu | P1016 | 普及+/提高 | 2026-06-20 13:02 | 打开 | |
把位置、当前颜色和是否刚施法作为状态,在四维状态图上做 Dijkstra 求最小花费。 | luogu | P3956 | 普及+/提高 | 2026-06-20 12:57 | 打开 | |
用栈维护循环嵌套、死循环深度和当前有效幂次,线性扫描判断语法并求真实复杂度。 | luogu | P3952 | 普及+/提高 | 2026-06-20 12:50 | 打开 | |
固定差值 q,把四元组化成左右两类值对,再用前缀累计和后缀累计统计四种位置贡献。 | luogu | P2119 | 普及+/提高 | 2026-06-20 12:30 | 打开 | |
检验值 y(W) 随阈值 W 单调不增,用前缀和在 O(n+m) 内计算一次 y(W),再二分找到最接近标准值 s 的位置。 | luogu | P1314 | 普及+/提高 | 2026-06-20 12:26 | 打开 | |
把右端点固定后,合法左端点只取决于是否在最近一个消费不超过 p 的客栈之前;用每种颜色的出现次数做一次线性统计即可。 | luogu | P1311 | 普及+/提高 | 2026-06-20 12:22 | 打开 | |
由 lcm(x,b0)=b1 可知 x 只能在 b1 的约数里取值,因此枚举 b1 的所有约数,再检查 gcd 和 lcm 两个条件即可。 | luogu | P1072 | 普及+/提高 | 2026-06-20 12:18 | 打开 | |
把目标试管数 M=m1^m2 分解成质因子需求,再看每种细胞的分裂因子 Si 每秒能提供多少对应指数,最早时间就是这些需求的最大上取整。 | luogu | P1069 | 普及+/提高 | 2026-06-20 12:13 | 打开 | |
设最后一次补刀前塔已攻击 t 次、英雄已攻击 t 次,先用不等式定位最早可能补刀的时刻,再判断那一刻塔是否还没先杀死小兵。 | luogu | P6462 | 普及+/提高 | 2026-06-20 12:08 | 打开 | |
把两种倍数位置按 gcd 归一化后,问题转成相邻两个较稀疏倍数之间会强制出现多少个连续稠密颜色,判定 k 是否严格大于这个上界。 | luogu | P6476 | 普及+/提高 | 2026-06-20 11:56 | 打开 | |
先把左半边镜像成回文;若还不够大,就给中间位置进位,再重新镜像,得到严格大于原数的最小回文数。 | luogu | P1609 | 普及/提高- | 2026-06-20 11:53 | 打开 | |
利用与 n 互质的数按长度 n 周期重复、每段恰有 phi(n) 个的性质,先定位块号,再在 1..n 中找对应位置。 | luogu | P1592 | 普及+/提高 | 2026-06-20 11:48 | 打开 | |
把两头奶牛落到同一厩等价为编号差是 K 的倍数,先记录所有差值,再找最小的不整除任何差值的 K。 | luogu | P1154 | 普及+/提高 | 2026-06-20 11:44 | 打开 | |
把 1 到 n 按 5 个一组递归折叠,利用 D(n)=D(n/5)*D(n%5)*2^(n/5) mod 10 求阶乘最后一个非零数字。 | luogu | P1134 | 普及+/提高 | 2026-06-20 11:34 | 打开 | |
先由最终连续感染段反推全局最多传播了多少晚,再把每段连续 1 按单个初始感染点最多覆盖的长度分组计数。 | luogu | P9975 | 普及+/提高 | 2026-06-20 11:26 | 打开 | |
用双指针维护一个覆盖全部画家编号的最短区间;右端扩张凑齐种类,左端尽量收缩。 | luogu | P1638 | 普及- | 2026-06-20 11:21 | 打开 | |
把前 k 份订单是否可满足做成差分检查函数,再二分第一份出问题的订单编号。 | luogu | P1083 | 普及+/提高 | 2026-06-20 11:16 | 打开 | |
把横切和竖切代价分别降序排序,每次优先切当前代价更大的那一刀,让大的代价尽量在乘数更小的时候付出。 | luogu | P3173 | 普及+/提高 | 2026-06-20 11:11 | 打开 | |
把一种性别记成 +1、另一种记成 -1,问题就转成最长和为 0 的子数组;记录每个前缀和第一次出现的位置即可。 | luogu | P1114 | 普及- | 2026-06-20 11:07 | 打开 | |
先求出第 i 段长度前缀和为 (i+1)(2i+1),二分定位 k 落在哪一段,再按段内位置分段计算数值。 | luogu | P8873 | 普及+/提高 | 2026-06-20 11:02 | 打开 | |
把 G 记成 +1、R 记成 -1,问题就转成最长和为 0 的子数组;记录每个前缀和第一次出现的位置即可。 | luogu | P2697 | 普及- | 2026-06-20 10:58 | 打开 | |
先预处理每对单词最优的重叠长度,再在每个单词最多使用两次的限制下做 DFS,搜索最长接龙长度。 | luogu | P1019 | 普及+/提高 | 2026-06-20 10:51 | 打开 | |
先用现有动物的按位或找出已经出现过的二进制位,再把所有“仍会引入新饲料”的位置并成危险位,最后按自由位数量直接计数。 | luogu | P7076 | 普及+/提高 | 2026-06-20 10:42 | 打开 | |
把每个武将所在行的次大默契值看成他起手后能保住的最强搭档,再取所有次大值的最大者;同时用高边构成匹配证明小涵一定能赢。 | luogu | P1199 | 普及+/提高 | 2026-06-20 10:19 | 打开 | |
把每一对会说话的同学映射到唯一的一条横缝或竖缝,分别统计每条缝的贡献次数后,各自取前 K 条和前 L 条即可。 | luogu | P1056 | 普及- | 2026-06-20 10:12 | 打开 | |
把数字 1..n 看成可重复使用的物品,按数字大小做组合计数版完全背包,用 dp[sum][cnt] 统计和与份数。 | luogu | P1025 | 普及+/提高 | 2026-06-20 10:06 | 打开 | |
把每个竞争售价转成关于税收或补贴 k 的一次严格不等式,和目标价对应约束求交集后,直接取绝对值最小的整数解。 | luogu | P1023 | 普及+/提高 | 2026-06-20 09:42 | 打开 | |
先识别答案就是第 n 个 Catalan 数,再用质因数分解计算 C(2n,n)/(n+1),避免模数不一定是质数时无法直接求逆元。 | luogu | P3200 | 提高+/省选- | 2026-06-20 09:36 | 打开 | |
把题目的“更有趣”关系看成所有本质不同有序二叉树的全序,先按结点数分类,再递归计算同大小树中的字典序排名。 | luogu | P7118 | 提高+/省选- | 2026-06-20 08:59 | 打开 | |
固定一个点后枚举它与谁配对,这条线会把圆拆成左右两个互不相交的子问题,于是得到标准 Catalan 递推。 | luogu | P1976 | 普及+/提高 | 2026-06-20 08:57 | 打开 | |
先识别出圆上不相交配对就是 Catalan 数,再用 Cn = Cn-1 * (4n-2) / (n+1) 的线性递推把 O(n^2) 优化到 O(n)。 | luogu | P1375 | 普及+/提高 | 2026-06-20 08:52 | 打开 | |
把操作过程抽象成还未入栈数量和当前栈大小,用记忆化搜索统计合法 push/pop 序列。 | luogu | P1044 | 普及+/提高 | 2026-06-20 08:48 | 打开 | |
把拿 50 元和拿 100 元的人分别看成前缀加一和减一,设 f(a,b) 统计剩余两类人数时的合法排队方案数。 | luogu | P1754 | 普及+/提高 | 2026-06-20 08:42 | 打开 | |
把红筹和黑筹分别看成左括号与右括号,用前缀差值 dp[i][bal] 统计合法前缀数量,再用高精度加法保存第 n 个 Catalan 数。 | luogu | P1722 | 普及+/提高 | 2026-06-20 08:39 | 打开 | |
先把每种特产独立看成隔板法分配,再对空同学集合做容斥,枚举有多少人没分到东西并扣掉这些不合法方案。 | luogu | P5505 | 提高+/省选- | 2026-06-20 08:26 | 打开 | |
把空行、空列、缺失颜色都当成坏事件做三重容斥,固定保留行列和可用颜色数后,每个剩余格子独立贡献 avail 种选择。 | luogu | P6076 | 提高+/省选- | 2026-06-20 08:15 | 打开 |