题目列表
可按标题、OJ、标签和启发记录快速筛选题目解析。
| OJ | 题号 | 标题 | 标签 | 难度 | 最后更新 | 解析 |
|---|---|---|---|---|---|---|
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 | |||
P1045 | 用对数推导 2^P-1 的位数,再用只保留低 500 位的高精度快速幂计算十进制后缀。 | 普及- | 2026-10-07 12:15 | |||
P2392 | 每科独立做左右分组,用 0/1 背包子集和 DP 找最接近总时间一半的可达时间。 | 普及- | 2026-10-07 12:15 | |||
P1786 | 先按帮贡和输入顺序给可调整成员重新分配职位,再按职位、等级和输入顺序排序输出。 | 普及- | 2026-10-07 12:15 | |||
P4924 | 每次复制待旋转子矩阵,根据顺/逆时针旋转公式生成新子矩阵后写回原矩阵。 | 普及- | 2026-10-07 12:15 | |||
P1036 | 用递增下标的 DFS 组合枚举选出 k 个数,只生成 C(n,k) 个组合,组合和用试除法判素数。 | 普及- | 2026-10-07 12:15 | |||
P5741 | 用元组保存学生成绩,枚举所有学生对并检查三科分差和总分分差。 | 普及- | 2026-10-07 12:15 | |||
P1598 | 统计 A 到 Z 的出现次数,从最高层向下逐行输出星号,并用 rstrip 删除行尾多余空格。 | 普及- | 2026-10-07 12:15 | |||
P1205 | 实现矩阵顺时针旋转和水平反射,按题目编号顺序逐一比较目标图案。 | 普及- | 2026-10-07 12:15 | |||
P1009 | 用 Python 大整数逐步维护当前阶乘,并累加得到 1! 到 n! 的和。 | 普及- | 2026-10-07 12:15 | |||
P1896 | 状态压缩 DP:压缩每行国王摆放为 bitmask,逐行转移,合法状态需满足同行不相邻且上下行不冲突。 | 提高 | 2026-10-07 12:15 | |||
P3808 | 把所有模式串插入 Trie 并建立 fail 指针,扫描文本串时沿 fail 链统计出现过的终止节点。 | 提高+/省选- | 2026-10-07 12:15 | |||
P3390 | 把普通快速幂中的乘法换成矩阵乘法,用指数二进制拆分求矩阵高次幂。 | 普及+/提高- | 2026-10-07 12:15 | |||
P1020 | 第一问求最长不上升子序列,第二问由 Dilworth 定理转成最长上升子序列,均可用二分维护尾值。 | 普及+/提高- | 2026-10-07 12:15 | |||
P1553 | 按整数、小数、分数、百分数四种格式拆分字符串,分别反转数字部分并按规则去掉多余的零。 | 普及- | 2026-10-07 12:15 | |||
P8817 | 先 BFS 求限制步数内可达,再为每个点保留前 4 个高分候选,枚举中间两个景点凑出四段行程。 | 提高+/省选- | 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 判断免费额度是否足够。 | 普及+/提高- | 2026-10-07 12:15 | |||
P1991 | 把卫星电话理解为允许保留 S 个无线连通块,在完全图上 Kruskal 到剩 S 个集合。 | 普及 | 2026-10-07 12:15 | |||
P1525 | 按怨气值从大到小加入异组约束,用 2N 并查集找第一条无法避免的冲突边。 | 普及+/提高- | 2026-10-07 12:15 | |||
P1250 | 按要求区间右端点升序处理,若区间内树数不足,就从右往左补树。 | 普及 | 2026-10-07 12:15 | |||
P2887 | 按 SPF 升序扫描防晒霜,用小根堆优先匹配 maxSPF 最小、最快过期的奶牛。 | 普及 | 2026-10-07 12:15 | |||
P14638 | 把包含位置且长度受限的区间转成前缀和坐标中的梯形区域,用 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 与哈希统计可行配对。 | 提高+/省选- | 2026-10-07 12:15 | |||
P3678 | 先按全 # 边框切出所有窗口,再把每个窗口在允许旋转下做最小表示,用集合统计不同图案个数。 | 普及+/提高- | 2026-10-07 12:15 | |||
P8630 | 把长度为 8 的子串和密码都转成 26 个字母的计数签名,再用滑动窗口统计每种签名出现次数。 | 普及 | 2026-10-07 12:15 | |||
P8112 | 先用 Z 函数求每个位置和字典串前缀的最长匹配长度,再把这些匹配视作区间覆盖做最少跳数贪心。 | 提高+/省选- | 2026-10-07 12:15 | |||
P8755 | 按计算机分别维护当前运行任务的小根堆,先弹出已结束任务,再判断剩余算力是否足够。 | 普及 | 2026-10-07 12:15 | |||
P4037 | 把装备合成关系看成森林,设 f[u][j][c] 表示在 u 的子树里留出 j 个 u 给父亲继续合成、花费 c 金币时能得到的最大力量值,再做树形分组背包合并子树。 | 提高+/省选- | 2026-10-07 12:15 | |||
P4516 | 做树上背包,设 f[u][j][sel][cov] 表示子树内选了 j 个点、u 是否放设备、u 是否被儿子监听的方案数,合并儿子时判断儿子是否能被父亲覆盖。 | 提高+/省选- | 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 统计所有合法连续划分方案。 | 提高+/省选- | 2026-10-07 12:15 |