题目列表

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

共 2161 题
标题OJ题号标签难度最后更新原题
把“灯亮”和“可达”分开维护,从起点做 BFS;每次开灯后,新亮房间若挨着访问区域就立刻变成可达。
luoguP2845
BFS模拟搜索网格思维
普及+/提高2026-06-20 23:12打开
把“初始朝上”和“初始朝右”两种可能同时打包成一个六维状态,用 BFS 求一套公共指令的最短长度。
luoguP3610
BFS状态压缩最短路搜索网格
提高+/省选-2026-06-20 23:05打开
用 9 位掩码维护每格候选数字,结合数独约束与大小关系反复传播,再按候选最少的格子搜索。
luoguP4573
搜索回溯位运算约束传播数独
提高+/省选-2026-06-20 22:48打开
把每种特性的前缀出现次数都减去第一种特性,转成前缀差分状态;相同状态之间的最远距离就是答案。
luoguP2843
前缀和哈希状态压缩差分思维
提高+/省选-2026-06-20 22:42打开
二分最大位移后,把每个区间转成带最早可接点和最晚失效点的任务,按失效点最小优先贪心推进覆盖前缀。
luoguP8660
二分答案贪心优先队列区间建模
提高+/省选-2026-06-20 21:34打开
枚举罪犯和星期几,在线性扫描证词时判断每个人是否必须恒真或恒假,再检查能否凑出恰好 N 个说谎者。
luoguP1039
枚举字符串模拟逻辑推理
普及+/提高2026-06-20 21:26打开
先在外层 DFS 枚举单顺、双顺、三顺的拆法,再对剩余牌型做记忆化搜索,精确求出最少出牌次数。
luoguP2668
搜索记忆化搜索DFS状态压缩思维
提高+/省选-2026-06-20 21:10打开
每次贪心选择当前能让最多乘客少 1 分钟的那段路,把它的行驶时间减 1;这次收益由提前效果能传播到的连续区间内下车人数决定。
luoguP1315
贪心模拟推导前缀和
提高+/省选-2026-06-20 19:58打开
按低位更重要的顺序给字母分配数字,每次赋值后立刻检查已经能确定的低位列是否满足进位加法,从而提前剪掉大量无效分支。
luoguP1092
搜索递归剪枝模拟
提高+/省选-2026-06-20 19:45打开
先按题目给定优先级把表达式递归下降解析成语法树,再用多组模数代值比较签名,快速判断哪些选项与题干恒等。
luoguP1054
字符串递归数学思维
提高+/省选-2026-06-20 19:26打开
先判断愿望关系能否构成唯一的整环,再在正反两个环序中统计最优旋转能保留多少人不动,答案就是 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字符串回溯疑似错题
普及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打开