题目列表

可按标题、OJ、标签和启发记录快速筛选题目解析。

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