题目列表

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

共 1203 题
OJ题号标题标签难度最后更新解析
洛谷P4147
逐行把连续 F 高度压成直方图,并用单调栈求每行结尾的最大矩形面积。
单调栈矩阵python
普及+/提高-2026-10-07 12:15
洛谷P5076
用有序列表配合 bisect 查询排名、前驱和后继,并用 insort 插入新值。
二分有序集合python
普及-2026-10-07 12:15
洛谷P1241
按题意用栈匹配最近未匹配左括号,记录成功位置并为其余括号补出对应一对。
栈字符串模拟python
普及-2026-10-07 12:15
洛谷P2234
离线压缩营业额,用 Fenwick 树动态寻找已出现值中的前驱和后继并累加最近差。
树状数组离散化前驱后继python
普及-2026-10-07 12:15
洛谷P3613
为每个寄包柜维护一个稀疏字典,只保存实际写入过的格子编号和物品。
字典模拟python
普及-2026-10-07 12:15
洛谷P1032
把字符串作为 BFS 状态,枚举每条规则的所有出现位置,求十步内到目标串的最少变换数。
BFS字符串状态搜索最短路
普及+/提高-2026-10-07 12:15
洛谷P1101
枚举每个格子作为起点,沿八个方向逐字符核对 yizhong 的七位,命中后标记并集输出。
字符串枚举网格
普及-2026-10-07 12:15
洛谷P1162
补一圈零把外界连成一点,从外部 BFS 标记可达的零,剩余未标记的零即闭合圈内,填为 2。
BFSflood fill网格
普及-2026-10-07 12:15
洛谷P1825
BFS 展开邻居时若走入传送门端点,立即免费瞬移到配对端点,整次移动仍只计一步。
BFS网格最短路usaco
普及2026-10-07 12:15
洛谷P1102
用 Counter 统计每个数的出现次数,按 cnt[x]×cnt[x+C] 累加位置数对。
计数哈希python
普及-2026-10-07 12:15
洛谷P1024
利用根间距扫描整数端点与开单位区间,在变号区间内二分逼近三个互异实根。
二分数学浮点数python
普及-2026-10-07 12:15
洛谷P1884
沿 x 轴扫描矩形左右边事件,每个竖条内合并当前活跃的 y 区间以计算覆盖面积。
扫描线区间合并离散化二维差分python
普及+/提高-2026-10-07 12:15
洛谷P2882
枚举翻转长度 K,用异或差分在线维护当前翻转奇偶并贪心确定每个起点是否必须操作。
枚举差分贪心python
普及+/提高-2026-10-07 12:15
洛谷P3029
按坐标排序奶牛,用 Counter 和双指针维护包含全部品种的最短坐标窗口。
双指针滑动窗口计数python
普及2026-10-07 12:15
洛谷P3406
用路线端点差分统计每段铁路经过次数,再逐段比较纸票与购卡后的独立费用。
差分贪心python
普及2026-10-07 12:15
洛谷P1045
用对数推导 2^P-1 的位数,再用只保留低 500 位的高精度快速幂计算十进制后缀。
高精度数学快速幂python
普及-2026-10-07 12:15
洛谷P2392
每科独立做左右分组,用 0/1 背包子集和 DP 找最接近总时间一半的可达时间。
动态规划背包子集和
普及-2026-10-07 12:15
洛谷P1786
先按帮贡和输入顺序给可调整成员重新分配职位,再按职位、等级和输入顺序排序输出。
排序模拟结构体python
普及-2026-10-07 12:15
洛谷P4924
每次复制待旋转子矩阵,根据顺/逆时针旋转公式生成新子矩阵后写回原矩阵。
矩阵模拟python
普及-2026-10-07 12:15
洛谷P1036
用递增下标的 DFS 组合枚举选出 k 个数,只生成 C(n,k) 个组合,组合和用试除法判素数。
枚举组合素数DFS
普及-2026-10-07 12:15
洛谷P5741
用元组保存学生成绩,枚举所有学生对并检查三科分差和总分分差。
模拟枚举结构体python
普及-2026-10-07 12:15
洛谷P1598
统计 A 到 Z 的出现次数,从最高层向下逐行输出星号,并用 rstrip 删除行尾多余空格。
字符串计数模拟python
普及-2026-10-07 12:15
洛谷P1205
实现矩阵顺时针旋转和水平反射,按题目编号顺序逐一比较目标图案。
模拟矩阵字符串python
普及-2026-10-07 12:15
洛谷P1009
用 Python 大整数逐步维护当前阶乘,并累加得到 1! 到 n! 的和。
python入门循环高精度数学
普及-2026-10-07 12:15
洛谷P1896
状态压缩 DP:压缩每行国王摆放为 bitmask,逐行转移,合法状态需满足同行不相邻且上下行不冲突。
动态规划状压DP位运算
提高2026-10-07 12:15
洛谷P3808
把所有模式串插入 Trie 并建立 fail 指针,扫描文本串时沿 fail 链统计出现过的终止节点。
字符串字典树AC自动机模板题
提高+/省选-2026-10-07 12:15
洛谷P3390
把普通快速幂中的乘法换成矩阵乘法,用指数二进制拆分求矩阵高次幂。
数学快速幂矩阵模板题
普及+/提高-2026-10-07 12:15
洛谷P1020
第一问求最长不上升子序列,第二问由 Dilworth 定理转成最长上升子序列,均可用二分维护尾值。
动态规划lis二分贪心
普及+/提高-2026-10-07 12:15
洛谷P1553
按整数、小数、分数、百分数四种格式拆分字符串,分别反转数字部分并按规则去掉多余的零。
字符串模拟分类讨论python
普及-2026-10-07 12:15
洛谷P8817
先 BFS 求限制步数内可达,再为每个点保留前 4 个高分候选,枚举中间两个景点凑出四段行程。
图论BFS枚举贪心
提高+/省选-2026-10-07 12:15
洛谷P8820
把路径上的点权最短路压成 k<=3 的 min-plus 矩阵,并用重链剖分维护路径转移。
图论最短路树形结构倍增矩阵
提高+/省选-2026-10-07 12:15
洛谷P1972
按右端点离线处理询问,用树状数组只保留每种颜色在当前前缀中的最后出现位置。
离线树状数组数据结构
提高2026-10-07 12:15
洛谷P1903
把查询记录为左右端点和修改次数,用带修莫队同时移动区间与时间维护不同颜色数。
莫队带修莫队离线数据结构
提高+/省选-2026-10-07 12:15
洛谷P2822
用 Pascal 递推预处理组合数对 k 的余数,再对可整除位置建立二维前缀和。
组合计数动态规划前缀和
普及2026-10-07 12:15
洛谷P1948
二分最大付费边长度,把超过阈值的边计为 1,用 0-1 BFS 判断免费额度是否足够。
二分答案最短路0-1 BFS图论
普及+/提高-2026-10-07 12:15
洛谷P1991
把卫星电话理解为允许保留 S 个无线连通块,在完全图上 Kruskal 到剩 S 个集合。
最小生成树Kruskal并查集几何聚类
普及2026-10-07 12:15
洛谷P1525
按怨气值从大到小加入异组约束,用 2N 并查集找第一条无法避免的冲突边。
并查集二分图贪心排序python
普及+/提高-2026-10-07 12:15
洛谷P1250
按要求区间右端点升序处理,若区间内树数不足,就从右往左补树。
贪心区间覆盖树状数组
普及2026-10-07 12:15
洛谷P2887
按 SPF 升序扫描防晒霜,用小根堆优先匹配 maxSPF 最小、最快过期的奶牛。
贪心堆区间覆盖排序python
普及2026-10-07 12:15
洛谷P14638
把包含位置且长度受限的区间转成前缀和坐标中的梯形区域,用 ST 表和单调队列线性求每个询问。
数据结构ST表单调队列前缀和
省选/NOI-2026-10-07 12:15
洛谷P14362
枚举被城市化的乡镇集合,并用“原图边只需 MST”的替换性质把每次 Kruskal 的原图边压缩到 n-1 条。
图论最小生成树枚举并查集
提高+/省选-2026-10-07 12:15
洛谷P11232
用速度平方把每辆车能被测出超速的测速仪转成区间,再按右端点贪心求最少保留测速仪。
贪心二分区间覆盖
提高+/省选-2026-10-07 12:15
洛谷P5149
先把打乱后的座位顺序映射成原座位下标序列,再把不满值转化成这个整数序列的逆序对数量。
归并排序逆序对字符串哈希
普及2026-10-07 12:15
洛谷P3318
按 N 与 M 的大小分类,把条件改写成在前半串循环串中匹配一段前后缀,再用 KMP 与哈希统计可行配对。
字符串KMP哈希建模分类讨论
提高+/省选-2026-10-07 12:15
洛谷P3678
先按全 # 边框切出所有窗口,再把每个窗口在允许旋转下做最小表示,用集合统计不同图案个数。
模拟矩阵分类讨论
普及+/提高-2026-10-07 12:15
洛谷P8630
把长度为 8 的子串和密码都转成 26 个字母的计数签名,再用滑动窗口统计每种签名出现次数。
字符串滑动窗口哈希
普及2026-10-07 12:15
洛谷P8112
先用 Z 函数求每个位置和字典串前缀的最长匹配长度,再把这些匹配视作区间覆盖做最少跳数贪心。
字符串贪心Z函数区间覆盖
提高+/省选-2026-10-07 12:15
洛谷P8755
按计算机分别维护当前运行任务的小根堆,先弹出已结束任务,再判断剩余算力是否足够。
模拟堆优先队列
普及2026-10-07 12:15
洛谷P4037
把装备合成关系看成森林,设 f[u][j][c] 表示在 u 的子树里留出 j 个 u 给父亲继续合成、花费 c 金币时能得到的最大力量值,再做树形分组背包合并子树。
动态规划树形DP背包状态设计
提高+/省选-2026-10-07 12:15
洛谷P4516
做树上背包,设 f[u][j][sel][cov] 表示子树内选了 j 个点、u 是否放设备、u 是否被儿子监听的方案数,合并儿子时判断儿子是否能被父亲覆盖。
动态规划树形DP树上背包状态设计
提高+/省选-2026-10-07 12:15
洛谷P4823
把第 i 个小矮人逃走前的条件整理成“已逃走肩高前缀不超过 T+a_i+b_i-H”,再按 a+b 排序并用大根堆维护最多可行人数。
贪心排序优先队列调度
提高+/省选-2026-10-07 12:15
洛谷P5785
把分批完成的总费用用前缀和展开成线性形式后,对每个分界点建立直线,用单调队列做斜率优化 DP。
动态规划前缀和斜率优化凸包优化
提高+/省选-2026-10-07 12:15
洛谷P2120
用前缀和写出连续分段的建仓代价后,把 DP 转移整理成关于位置 x 的直线最小值查询,并用单调队列做斜率优化。
动态规划前缀和斜率优化凸包优化
提高+/省选-2026-10-07 12:15
洛谷P2900
先删除所有被支配矩形,把问题化成连续分段 DP,再用单调队列维护凸包优化转移。
动态规划斜率优化凸包优化贪心预处理
提高+/省选-2026-10-07 12:15
洛谷P8632
把家庭按最终去的会场分成 4 段,设 dp[k][i] 表示前 i 户用了 k 个中间会场的最小代价,再把区间代价整理成直线形式,用斜率优化把 3 层转移压到线性。
动态规划斜率优化前缀和优化
提高+/省选-2026-10-07 12:15
洛谷P5017
把每位同学的到达时刻平移为“最早可被接走的回程时刻”,再设 dp[x] 表示最后一班车在时刻 x 返回时的最小等待和,并用斜率优化维护转移直线。
动态规划斜率优化前缀和优化
提高+/省选-2026-10-07 12:15
洛谷P3594
用双指针枚举答案区间,再用单调队列维护当前窗口内“长度恰好为 d 的子段最大和”,从而快速判断把哪一段清零后能否让总和不超过 p。
双指针单调队列前缀和优化
提高+/省选-2026-10-07 12:15
洛谷P3572
设 dp[i] 表示到第 i 棵树的最少疲劳跳跃次数,用单调队列维护最近 k 棵树里“dp 更小且高度更优”的候选前驱,把每次询问做到 O(n)。
动态规划单调队列队列
提高+/省选-2026-10-07 12:15
洛谷P2569
设 dp[i][j] 表示第 i 天结束时持有 j 股的最大收益,把买卖转移改写成区间最值,再用单调队列把每一天优化到 O(MaxP)。
动态规划单调队列建模
提高+/省选-2026-10-07 12:15
洛谷P2511
先二分最长段长度的最小可行值,再在该上界下用滑动窗口优化的计数 DP 统计所有合法连续划分方案。
二分答案动态规划前缀和优化滑动窗口计数DP
提高+/省选-2026-10-07 12:15