题目列表
可按标题、OJ、标签和启发记录快速筛选题目解析。
| OJ | 题号 | 标题 | 标签 | 难度 | 最后更新 | 解析 |
|---|---|---|---|---|---|---|
largest-rectangle-in-histogram | 单调栈弹出时左右第一个更矮位置决定宽度,高度乘宽度即为面积,末尾补 0 清算剩余。 | 提高+/省选- | 2026-10-07 12:15 | |||
word-search | DFS 搜索路径,进入格子后标记已访问防止复用,递归后恢复现场,四方向扩展匹配下一个字符。 | 普及+/提高- | 2026-10-07 12:15 | |||
minimum-window-substring | 滑动窗口维护 need/have 计数,右端扩张满足需求,左端收缩到刚好不满足,O(n)。 | 提高+/省选- | 2026-10-07 12:15 | |||
trapping-rain-water | 双指针维护左右最高柱,较矮侧水量可立即确定,O(n) 时间 O(1) 空间。 | 提高+/省选- | 2026-10-07 12:15 | |||
P1600 | 把观察条件改写为深度等式,按 LCA 拆两段路径,用桶与树上差分在 DFS 中统计每个观察员看到的人数。 | 省选/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 定位每条路径的公共祖先,再以树上点差分四个端点标记统一汇总,求出被经过次数最多的点。 | 普及+/提高- | 2026-10-07 12:15 | |||
P3372 | 区间加与区间和模板题,可用懒标记线段树或两个 Fenwick 树维护。 | 普及+/提高- | 2026-10-07 12:15 | |||
P5522 | 每个串压成 0/1 两个位掩码,线段树按位或合并区间约束,统计兼容二进制串数量。 | 提高 | 2026-10-07 12:15 | |||
P5908 | 从 1 号点 BFS,边权全为 1 时层数即距离,距离为 d 的点停止扩展并计数,一次遍历 O(n)。 | 普及- | 2026-10-07 12:15 | |||
P1168 | 最大堆和最小堆维护前缀的较小一半与较大一半,奇数长度输出最大堆顶。 | 普及 | 2026-10-07 12:15 | |||
P1801 | 两个堆维护已输出排名左侧与右侧元素,使每次 GET 的目标值位于右堆顶。 | 普及 | 2026-10-07 12:15 | |||
P1878 | 有修改的堆 1. 自己维护堆+桶 2. 堆的过时元素删除 | 普及 | 2026-10-07 12:15 | |||
P2161 | Fenwick 维护当前不相交线段的起点,并按秩寻找可能相交的前驱和后继。 | 普及+/提高- | 2026-10-07 12:15 | |||
P2251 | 单调递增 deque 保存窗口内仍可能成为最小值的下标。 | 普及 | 2026-10-07 12:15 | |||
P3368 | 在差分数组上用 Fenwick 做两个端点修改,前缀和恢复单点值。 | 普及+/提高- | 2026-10-07 12:15 | |||
P3374 | Fenwick 维护单点增量与前缀和,用两个前缀和相减回答区间和。 | 普及+/提高- | 2026-10-07 12:15 | |||
P1078 | 把当前国家与已学文化集合共同作为 Dijkstra 状态,并用集合包含关系做支配剪枝。 | 提高+/省选- | 2026-10-07 12:15 | |||
P2960 | 从初始格做八方向 BFS,最远可达草地的距离就是完全侵占周数。 | 普及- | 2026-10-07 12:15 | |||
P5507 | 把 12 个四进制旋钮压成整数,正反生成状态做双向 BFS 并恢复最短操作序列。 | 提高+/省选- | 2026-10-07 12:15 | |||
P1481 | 枚举前缀 / 字典树 / DP 三种方式求以每个单词结尾的最长词链长度。 | 普及- | 2026-10-07 12:15 | |||
P2375 | KMP 统计 border 链长度,再用第二遍线性扫描限制前后缀不能重叠。 | 提高+/省选- | 2026-10-07 12:15 | |||
P2580 | 分别用合法姓名集合和已点名集合区分 WRONG、OK 与 REPEAT。 | 普及 | 2026-10-07 12:15 | |||
P3369 | 同一道顺序统计题给出三种解法:离线坐标压缩 + Fenwick、Python 版 FHQ-Treap,以及 C++ 版 FHQ-Treap。 | 提高+/省选- | 2026-10-07 12:15 | |||
P3435 | 周期和 border 是同一枚硬币的两面:最长 period = len - 最短 border,沿前缀函数链递推。 | 提高+/省选- | 2026-10-07 12:15 | |||
P4551 | 把树上路径异或转为两个根前缀异或,再用 01-Trie 求最大异或对。 | 普及+/提高- | 2026-10-07 12:15 | |||
P4735 | 把后缀异或改写为前缀异或区间查询,用可持久化 01-Trie 支持追加与最大异或。 | 省选/NOI- | 2026-10-07 12:15 | |||
P5283 | 可持久化 01-Trie 求每个右端点的第 rank 大异或,用堆归并取全局前 k 大。 | 省选/NOI- | 2026-10-07 12:15 | |||
P6824 | 采用贡献覆盖视角,把每个元素能接受的异或值区间在 01-Trie 上打懒标记,最后通过 DFS 下传求得最优解。 | 普及+/提高- | 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 | 每加入一条大小关系就重跑拓扑排序,用队列分支数判断唯一序列并用处理点数判断矛盾。 | 普及+/提高- | 2026-10-07 12:15 | |||
P4017 | 从所有入度为零的生产者开始拓扑 DP,把路径条数沿捕食边累加到出度为零的消费者。 | 普及 | 2026-10-07 12:15 | |||
P1908 | 把逆序对看成二维偏序,从左到右扫描并用 Fenwick 加速值域桶统计。 | 普及 | 2026-10-07 12:15 | |||
P1966 | 按高度排名建立两列位置的对应排列,再把最少相邻交换次数转成逆序对。 | 提高+/省选- | 2026-10-07 12:15 | |||
P7562 | 按编号做字典序贪心,以区间调度倍增作为可扩展性判定,并用 Treap 维护空闲时间段。 | 省选/NOI- | 2026-10-07 12:15 | |||
P1621 | 筛出不小于 p 的质数,并查集合并区间内每个质数的所有倍数。 | 普及+/提高- | 2026-10-07 12:15 | |||
P2814 | 用姓名字典记录直接父亲,沿父链查找最早祖先并进行路径压缩。 | 普及- | 2026-10-07 12:15 | |||
P5250 | 离线压缩所有长度,用树状数组维护库存并按排名寻找最近的前驱和后继。 | 普及 | 2026-10-07 12:15 | |||
P1950 | 逐行构造空白高度,并用单调栈求所有以当前行结底的空白矩形数量。 | 普及+/提高- | 2026-10-07 12:15 | |||
P2216 | 先横向、再纵向运行单调队列,在线性时间得到每个 n×n 方块的最大值和最小值。 | 普及+/提高- | 2026-10-07 12:15 | |||
P3143 | 排序后用双指针求每个起点的最长合法区间,再用后缀最优组合两个不相交展示柜。 | 普及 | 2026-10-07 12:15 | |||
P4147 | 逐行把连续 F 高度压成直方图,并用单调栈求每行结尾的最大矩形面积。 | 普及+/提高- | 2026-10-07 12:15 | |||
P5076 | 用有序列表配合 bisect 查询排名、前驱和后继,并用 insort 插入新值。 | 普及- | 2026-10-07 12:15 | |||
P1241 | 按题意用栈匹配最近未匹配左括号,记录成功位置并为其余括号补出对应一对。 | 普及- | 2026-10-07 12:15 | |||
P2234 | 离线压缩营业额,用 Fenwick 树动态寻找已出现值中的前驱和后继并累加最近差。 | 普及- | 2026-10-07 12:15 | |||
P3613 | 为每个寄包柜维护一个稀疏字典,只保存实际写入过的格子编号和物品。 | 普及- | 2026-10-07 12:15 | |||
P1032 | 把字符串作为 BFS 状态,枚举每条规则的所有出现位置,求十步内到目标串的最少变换数。 | 普及+/提高- | 2026-10-07 12:15 | |||
P1101 | 枚举每个格子作为起点,沿八个方向逐字符核对 yizhong 的七位,命中后标记并集输出。 | 普及- | 2026-10-07 12:15 | |||
P1162 | 补一圈零把外界连成一点,从外部 BFS 标记可达的零,剩余未标记的零即闭合圈内,填为 2。 | 普及- | 2026-10-07 12:15 | |||
P1825 | BFS 展开邻居时若走入传送门端点,立即免费瞬移到配对端点,整次移动仍只计一步。 | 普及 | 2026-10-07 12:15 | |||
P1102 | 用 Counter 统计每个数的出现次数,按 cnt[x]×cnt[x+C] 累加位置数对。 | 普及- | 2026-10-07 12:15 | |||
P1024 | 利用根间距扫描整数端点与开单位区间,在变号区间内二分逼近三个互异实根。 | 普及- | 2026-10-07 12:15 | |||
P1884 | 沿 x 轴扫描矩形左右边事件,每个竖条内合并当前活跃的 y 区间以计算覆盖面积。 | 普及+/提高- | 2026-10-07 12:15 | |||
P2882 | 枚举翻转长度 K,用异或差分在线维护当前翻转奇偶并贪心确定每个起点是否必须操作。 | 普及+/提高- | 2026-10-07 12:15 | |||
P3029 | 按坐标排序奶牛,用 Counter 和双指针维护包含全部品种的最短坐标窗口。 | 普及 | 2026-10-07 12:15 | |||
P3406 | 用路线端点差分统计每段铁路经过次数,再逐段比较纸票与购卡后的独立费用。 | 普及 | 2026-10-07 12:15 |