题目列表

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

共 3718 题
OJ题号标题标签难度最后更新解析
力扣largest-rectangle-in-histogram
单调栈弹出时左右第一个更矮位置决定宽度,高度乘宽度即为面积,末尾补 0 清算剩余。
单调栈栈
提高+/省选-2026-10-07 12:15
力扣word-search
DFS 搜索路径,进入格子后标记已访问防止复用,递归后恢复现场,四方向扩展匹配下一个字符。
回溯搜索DFS网格
普及+/提高-2026-10-07 12:15
力扣minimum-window-substring
滑动窗口维护 need/have 计数,右端扩张满足需求,左端收缩到刚好不满足,O(n)。
哈希表字符串滑动窗口cpppython
提高+/省选-2026-10-07 12:15
力扣trapping-rain-water
双指针维护左右最高柱,较矮侧水量可立即确定,O(n) 时间 O(1) 空间。
双指针栈动态规划数组cpppython
提高+/省选-2026-10-07 12:15
洛谷P1600
把观察条件改写为深度等式,按 LCA 拆两段路径,用桶与树上差分在 DFS 中统计每个观察员看到的人数。
LCA树形差分事件计数桶倍增
省选/NOI-2026-10-07 12:15
洛谷P1438
等差数列区间加可拆系数用双 Fenwick 维护差分,也可用线段树等差数列懒标记,两者均 O(log n)。
树状数组差分等差数列线段树懒标记
普及+/提高-2026-10-07 12:15
洛谷P1471
线段树节点同时维护区间和与平方和,用懒标记支持区间加,方差由二阶矩公式 O(log n) 求出。
线段树懒标记区间加方差浮点数
提高2026-10-07 12:15
洛谷P1558
位掩码压缩集合 + 集合并运算,popcount 输出颜色种类数。
线段树懒标记位运算区间赋值
普及+/提高-2026-10-07 12:15
洛谷P1637
离散化后固定中间点,用两次树状数组扫描分别统计左小与右大个数,相乘求和得三元组总数。
树状数组离散化计数贡献法二维偏序
普及+/提高-2026-10-07 12:15
洛谷P3128
用倍增 LCA 定位每条路径的公共祖先,再以树上点差分四个端点标记统一汇总,求出被经过次数最多的点。
LCA树上差分树
普及+/提高-2026-10-07 12:15
洛谷P3372
区间加与区间和模板题,可用懒标记线段树或两个 Fenwick 树维护。
线段树懒标记树状数组区间加区间求和python
普及+/提高-2026-10-07 12:15
洛谷P5522
每个串压成 0/1 两个位掩码,线段树按位或合并区间约束,统计兼容二进制串数量。
线段树位运算状态压缩区间合并字符串
提高2026-10-07 12:15
洛谷P5908
从 1 号点 BFS,边权全为 1 时层数即距离,距离为 d 的点停止扩展并计数,一次遍历 O(n)。
树BFS队列
普及-2026-10-07 12:15
洛谷P1168
最大堆和最小堆维护前缀的较小一半与较大一半,奇数长度输出最大堆顶。
双堆中位数heapqpython
普及2026-10-07 12:15
洛谷P1801
两个堆维护已输出排名左侧与右侧元素,使每次 GET 的目标值位于右堆顶。
双堆第k小heapqpython
普及2026-10-07 12:15
洛谷P1878
有修改的堆 1. 自己维护堆+桶 2. 堆的过时元素删除
二叉堆链表懒删除python
普及2026-10-07 12:15
洛谷P2161
Fenwick 维护当前不相交线段的起点,并按秩寻找可能相交的前驱和后继。
树状数组有序集合线段倍增桶权值线段树python
普及+/提高-2026-10-07 12:15
洛谷P2251
单调递增 deque 保存窗口内仍可能成为最小值的下标。
单调队列滑动窗口dequepython
普及2026-10-07 12:15
洛谷P3368
在差分数组上用 Fenwick 做两个端点修改,前缀和恢复单点值。
树状数组差分区间修改python
普及+/提高-2026-10-07 12:15
洛谷P3374
Fenwick 维护单点增量与前缀和,用两个前缀和相减回答区间和。
树状数组前缀和模板题python
普及+/提高-2026-10-07 12:15
洛谷P1078
把当前国家与已学文化集合共同作为 Dijkstra 状态,并用集合包含关系做支配剪枝。
状态最短路Dijkstra支配剪枝python
提高+/省选-2026-10-07 12:15
洛谷P2960
从初始格做八方向 BFS,最远可达草地的距离就是完全侵占周数。
BFS网格dequepython
普及-2026-10-07 12:15
洛谷P5507
把 12 个四进制旋钮压成整数,正反生成状态做双向 BFS 并恢复最短操作序列。
双向BFS状态压缩路径恢复python
提高+/省选-2026-10-07 12:15
洛谷P1481
枚举前缀 / 字典树 / DP 三种方式求以每个单词结尾的最长词链长度。
字符串字典树dppythoncpp模板题
普及-2026-10-07 12:15
洛谷P2375
KMP 统计 border 链长度,再用第二遍线性扫描限制前后缀不能重叠。
KMPborder计数势能法python
提高+/省选-2026-10-07 12:15
洛谷P2580
分别用合法姓名集合和已点名集合区分 WRONG、OK 与 REPEAT。
集合字符串状态记录python
普及2026-10-07 12:15
洛谷P3369
同一道顺序统计题给出三种解法:离线坐标压缩 + Fenwick、Python 版 FHQ-Treap,以及 C++ 版 FHQ-Treap。
树状数组坐标压缩有序多重集Treappythoncpp
提高+/省选-2026-10-07 12:15
洛谷P3435
周期和 border 是同一枚硬币的两面:最长 period = len - 最短 border,沿前缀函数链递推。
KMP周期递推
提高+/省选-2026-10-07 12:15
洛谷P4551
把树上路径异或转为两个根前缀异或,再用 01-Trie 求最大异或对。
01-Trie异或树python
普及+/提高-2026-10-07 12:15
洛谷P4735
把后缀异或改写为前缀异或区间查询,用可持久化 01-Trie 支持追加与最大异或。
可持久化Trie前缀异或在线追加python
省选/NOI-2026-10-07 12:15
洛谷P5283
可持久化 01-Trie 求每个右端点的第 rank 大异或,用堆归并取全局前 k 大。
可持久化Trie异或堆前k大01-Triepython
省选/NOI-2026-10-07 12:15
洛谷P6824
采用贡献覆盖视角,把每个元素能接受的异或值区间在 01-Trie 上打懒标记,最后通过 DFS 下传求得最优解。
01-Trie数位DP异或懒标记差分python
普及+/提高-2026-10-07 12:15
洛谷P1469
利用异或消去所有成对长度,并用 fread 流式读入满足千万数据和 8 MB 内存限制。
位运算异或输入优化
普及-2026-10-07 12:15
洛谷P3601
把 qiandao(x) 转化为 x-phi(x),再用分段筛批量计算短区间内每个数的欧拉函数。
欧拉函数分段筛数论筛法
提高+/省选-2026-10-07 12:15
洛谷P1347
每加入一条大小关系就重跑拓扑排序,用队列分支数判断唯一序列并用处理点数判断矛盾。
拓扑排序DAG唯一性python
普及+/提高-2026-10-07 12:15
洛谷P4017
从所有入度为零的生产者开始拓扑 DP,把路径条数沿捕食边累加到出度为零的消费者。
DAG拓扑排序动态规划计数python
普及2026-10-07 12:15
洛谷P1908
把逆序对看成二维偏序,从左到右扫描并用 Fenwick 加速值域桶统计。
二维偏序树状数组离散化逆序对python
普及2026-10-07 12:15
洛谷P1966
按高度排名建立两列位置的对应排列,再把最少相邻交换次数转成逆序对。
排序树状数组逆序对python
提高+/省选-2026-10-07 12:15
洛谷P7562
按编号做字典序贪心,以区间调度倍增作为可扩展性判定,并用 Treap 维护空闲时间段。
字典序贪心倍增Treappython
省选/NOI-2026-10-07 12:15
洛谷P1621
筛出不小于 p 的质数,并查集合并区间内每个质数的所有倍数。
并查集筛法质因数python
普及+/提高-2026-10-07 12:15
洛谷P2814
用姓名字典记录直接父亲,沿父链查找最早祖先并进行路径压缩。
并查集字典字符串python
普及-2026-10-07 12:15
洛谷P5250
离线压缩所有长度,用树状数组维护库存并按排名寻找最近的前驱和后继。
树状数组离散化前驱后继python
普及2026-10-07 12:15
洛谷P1950
逐行构造空白高度,并用单调栈求所有以当前行结底的空白矩形数量。
单调栈组合计数矩阵python
普及+/提高-2026-10-07 12:15
洛谷P2216
先横向、再纵向运行单调队列,在线性时间得到每个 n×n 方块的最大值和最小值。
单调队列二维滑动窗口python
普及+/提高-2026-10-07 12:15
洛谷P3143
排序后用双指针求每个起点的最长合法区间,再用后缀最优组合两个不相交展示柜。
双指针后缀最值python
普及2026-10-07 12:15
洛谷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