题目列表

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

共 1956 题
标题OJ题号标签难度最后更新原题
先算原始积水,再把每个位置改低后真正受影响的左右连续区间拆开重算,从而在线性时间求最优修改。
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打开
先写出原题的 O(nk) 计数 DP,再把状态改写成第二类 Stirling 数,最后用满射计数的容斥公式在线性预处理后求出 S(n,n-k)。
luoguP6162
组合计数容斥数学推导动态规划
提高+/省选-2026-06-20 08:03打开
先算每种做法任选或不选的总方案数,再按食材枚举严格多数者,用差值 DP 统计坏方案并从总数中扣掉。
luoguP5664
动态规划容斥组合计数计数dp思维
提高+/省选-2026-06-20 07:35打开
先预处理 4 种硬币无限使用时的完全背包方案数,再对每个询问用 16 个子集做容斥,扣掉任意一种硬币超上界的方案。
luoguP1450
动态规划完全背包容斥组合计数背包
提高+/省选-2026-06-20 07:22打开
先算完整 n×m 网格所有出生点对的曼哈顿距离和,再减去所有涉及障碍点的贡献,最后补回障碍之间被多减的一次。
luoguP6692
数学推导曼哈顿距离组合计数思维
提高+/省选-2026-06-20 07:09打开
先统计每个 t 的倍数里有多少齿轮,再用 C(cnt[t],k) 算 gcd 是 t 的倍数的方案数,最后按倍数从大到小容斥还原精确 gcd。
luoguP6298
数论容斥组合计数最大公约数思维
提高+/省选-2026-06-20 07:04打开
把每种金属在 k 个熔炉中的出现情况看成一个长度为 k 的 0/1 模式,合法模式有 2^k-1 种,总答案是 (2^k-1)^n。
luoguP8557
数学容斥快速幂思维
普及/提高-2026-06-20 06:57打开
先算总状态数 m^n,再减去所有相邻房间宗教都不同的安全状态数 m·(m-1)^(n-1)。
luoguP3197
数学容斥快速幂思维
普及/提高-2026-06-20 06:52打开
把每轮操作看成当前酒量加上 b 再对 a 取模,最小正体积就是 gcd(a,b),再用 exgcd 求 b·y-a·x=g 的最小正解。
luoguP1292
数论最大公约数思维
普及+/提高2026-06-20 06:42打开
付款方做有限硬币最少张数 DP,找零方做无限硬币最少张数 DP,再枚举实付金额取最优。
luoguP2851
动态规划多重背包完全背包单调队列背包
提高+/省选-2026-06-20 06:29打开
如果 n mod 1..m 没有重复,那么它们只能依次是 0,1,2,...,m-1,等价于 1..m 全都整除 n+1。
luoguP8807
数学数论思维
普及/提高-2026-06-20 06:22打开
设恰好 p 个人抽到最大记号数 t,则总记号数必须落在 [p t, p t + (n-p)(t-1)],找到合法 t 后再贪心构造。
luoguP7107
数学构造思维
普及+/提高2026-06-20 06:15打开
先预处理每个格子最近球员的到达代价,再把空球、控球和四个踢球方向建成 6 层状态图跑最短路。
luoguP5100
图论最短路网格思维
省选/NOI-2026-06-20 06:02打开
把原式改写成 |(a+bi)(p-qi)+(c+di)(r+si)|^2,在高斯整数环里用扩展欧几里得求 gcd 和贝祖系数。
luoguP6299
数论数学最大公约数思维
省选/NOI-2026-06-20 05:43打开
先用 exgcd 求 ax+by=-c 的一组特解,再把通解写成 x=x0+k·b/d, y=y0-k·a/d,把矩形范围限制都转成对 k 的区间约束,最后求区间交集大小。
luoguP2833
数论
普及+/提高2026-06-20 05:39打开
先用 exgcd 判断 ax+by=c 是否有整数解,再把通解写成 x=x0+k·b/d, y=y0-k·a/d,通过不等式求出正整数解对应的 k 范围。
luoguP5656
数论
普及+/提高2026-06-20 05:36打开