题目列表

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

共 1956 题
标题OJ题号标签难度最后更新原题
按右端点离线处理询问,用树状数组只保留每种颜色在当前前缀中的最后出现位置。
luoguP1972
离线树状数组数据结构
普及+/提高2026-06-22 23:16打开
为每个前缀建立可持久化权值线段树,用两个版本的计数差查询区间第 k 小。
luoguP3834
主席树可持久化线段树离散化数据结构
提高+/省选-2026-06-22 23:16打开
用 total/end 两类状态区分总体方案和当前字符接在段内的方案,完成字符串分段 DP。
luoguP2679
动态规划字符串计数DP
提高+/省选-2026-06-22 23:15打开
把片段看成非空二进制向量,递推统计异或和为 0 的有序选择再除以 m!。
luoguP3214
组合计数数学递推
提高+/省选-2026-06-22 23:15打开
先选出和睦情侣与座位行,再用完全不和睦排座数递推处理剩余情侣。
luoguP4931
组合计数递推数学
普及+/提高2026-06-22 23:15打开
用单调队列维护当前位置前 m 个数的最小值,注意先输出再插入当前元素。
luoguP1440
单调队列滑动窗口数据结构
普及/提高-2026-06-22 23:14打开
用莫队维护当前区间内同色袜子对数量,再与总二元组数量约分得到概率。
luoguP1494
莫队离线数据结构
普及+/提高2026-06-22 23:14打开
把查询记录为左右端点和修改次数,用带修莫队同时移动区间与时间维护不同颜色数。
luoguP1903
莫队带修莫队离线数据结构
提高+/省选-2026-06-22 23:14打开
用 Pascal 递推预处理组合数对 k 的余数,再对可整除位置建立二维前缀和。
luoguP2822
组合计数动态规划前缀和
普及/提高-2026-06-22 23:14打开
先以 1 为根求深度和与子树大小,再用换根公式线性求出每个根的深度和。
luoguP3478
树形结构换根DP动态规划
普及+/提高2026-06-22 23:11打开
用树形 DP 计算必须保留每个点时的最大连通块权值,负贡献子树直接剪掉。
luoguP1122
树形DP动态规划
普及/提高-2026-06-22 23:07打开
用树形 DP 维护每个员工选与不选两种状态,父子不能同时选择。
luoguP1352
树形DP动态规划
普及/提高-2026-06-22 22:59打开
对每次能源点集合构建虚树,压缩边权取原路径最小边权,再做树形 DP 求最小切断代价。
luoguP2495
虚树树形DPLCA
省选/NOI-2026-06-22 22:53打开
对参观顺序中的相邻点路径做树上点差分,汇总后减去每段交界点的重复计数。
luoguP3258
树上差分LCA倍增
普及+/提高2026-06-22 22:39打开
预处理每个点的 2^j 级祖先,把每次 K 级祖先查询转化为二进制跳跃。
luoguP5903
倍增LCA
普及+/提高2026-06-22 22:33打开
用 AC 自动机在线识别多个敏感词后缀,并用字符栈和状态栈完成删除后的状态回退。
luoguP3121
字符串AC自动机模拟
提高+/省选-2026-06-22 22:24打开
二分模式长度,用序列双哈希统计固定长度子数组是否有出现至少 K 次的模式。
luoguP2852
字符串哈希二分答案排序
普及+/提高2026-06-22 22:20打开
二分最大付费边长度,把超过阈值的边计为 1,用 0-1 BFS 判断免费额度是否足够。
luoguP1948
二分答案最短路0-1 BFS图论
普及+/提高2026-06-22 21:58打开
把卫星电话理解为允许保留 S 个无线连通块,在完全图上 Kruskal 到剩 S 个集合。
luoguP1991
最小生成树Kruskal并查集几何聚类
普及/提高-2026-06-22 21:54打开
先建最大生成森林,把最大瓶颈路径转成树上路径最小边权,再用倍增 LCA 回答询问。
luoguP1967
最大生成树KruskalLCA倍增图论
提高+/省选-2026-06-22 21:38打开
按怨气值从大到小加入异组约束,用 2N 并查集找第一条无法避免的冲突边。
luoguP1525
并查集二分图贪心排序python
普及+/提高2026-06-22 21:34打开
把删点操作倒序变成加点操作,用并查集动态维护当前剩余图的连通块数量。
luoguP1197
并查集逆序处理图论连通块
普及+/提高2026-06-22 21:28打开
按要求区间右端点升序处理,若区间内树数不足,就从右往左补树。
luoguP1250
贪心区间覆盖树状数组
普及/提高-2026-06-22 21:17打开
按 SPF 升序扫描防晒霜,用小根堆优先匹配 maxSPF 最小、最快过期的奶牛。
luoguP2887
贪心区间覆盖排序
普及/提高-2026-06-22 21:13打开
按比赛结束时间升序排序,每次选择当前能参加且结束最早的比赛。
luoguP1803
贪心排序区间贪心python
普及-2026-06-22 21:07打开
二分最大段和,用从左到右尽量装满当前段的贪心检查最少段数。
luoguP1182
二分答案贪心python
普及/提高-2026-06-22 20:57打开
按截止时间排序,若已选工作数超过当前截止时间,就用小根堆删掉利润最小的工作。
luoguP2949
贪心反悔贪心排序
普及+/提高2026-06-22 20:53打开
把奖金递推看成两机流水作业,使用 Johnson 法则分组排序后线性模拟。
luoguP2123
贪心排序调度
普及+/提高2026-06-22 20:43打开
用相邻交换证明按 a*b 升序排列大臣,Python 大整数直接维护前缀左手乘积。
luoguP1080
贪心排序高精度python
普及+/提高2026-06-22 20:40打开
把包含位置且长度受限的区间转成前缀和坐标中的梯形区域,用 ST 表和单调队列线性求每个询问。
luoguP14638
数据结构ST表单调队列前缀和
省选/NOI-2026-06-22 20:34打开
按 mex 基础层从大到小做树形 DP,并用长链剖分维护同深度的最优传递链。
luoguP14637
树形结构树形DP长链剖分mex
省选/NOI-2026-06-22 20:07打开
按失败人数做 DP,用 pending 延后结算大耐心人群,并在阈值增加时用组合数归属具体人员。
luoguP14364
动态规划组合计数计数DP
省选/NOI-2026-06-22 19:59打开
把规则和询问都转成字符对串,用 AC 自动机匹配,再在 fail 树上按长度阈值离线计数。
luoguP14363
字符串AC自动机离线树状数组
省选/NOI-2026-06-22 19:52打开
枚举被城市化的乡镇集合,并用原图 MST 替换性质把每次 Kruskal 的原图边压缩到 n-1 条。
luoguP14362
图论最小生成树枚举并查集
提高+/省选-2026-06-22 19:46打开
先让每个人去最满意的部门,若唯一超员部门超过上限,就按最小转出损失修正。
luoguP14361
贪心排序构造
普及+/提高2026-06-22 19:41打开
把连续编号区间的 LCA 深度转成相邻 LCA 深度数组的区间最小值,再离线二分答案。
luoguP11364
树形结构LCA二分线段树离线
省选/NOI-2026-06-22 19:30打开
把边遍历看成线图 DFS 树计数,先算单根方案,再用树形 DP 统计关键边对的重复贡献。
luoguP11363
树形结构动态规划组合计数
提高+/省选-2026-06-22 19:19打开
用一元固定点切分变量链,相邻固定点区间用总方案减唯一强制失败链计数。
luoguP11362
组合计数数学快速幂
普及+/提高2026-06-22 19:11打开
把连续可交换位置压成区间容量,分别贪心匹配同为 1 和同为 0 的最大数量。
luoguP11361
字符串贪心区间
普及+/提高2026-06-22 19:01打开
把赛程看成满二叉树,预处理确定赢家与自由前缀,再用差分统计每个叶子可能夺冠的前缀区间。
luoguP11234
树形结构动态规划
省选/NOI-2026-06-22 18:45打开
把两种颜色的历史压成另一色最后值 DP,并用最大/次大状态 O(1) 查询排除当前值后的最优转移。
luoguP11233
动态规划状态压缩最大次大值
提高+/省选-2026-06-22 18:36打开
用速度平方把每辆车能被检测到的位置转成测速仪区间,再用右端点贪心求最少保留测速仪。
luoguP11232
贪心二分区间覆盖
普及+/提高2026-06-22 18:29打开
把有效攻击看成强牌匹配弱牌,排序后用双指针求最多能击败多少只怪兽。
luoguP11231
贪心排序
普及/提高-2026-06-22 18:23打开
把购买拆成最便宜的两颗组和若干个单颗项,预处理奇偶最优值后二分答案。
luoguP14635
二分答案贪心推导noip
普及+/提高2026-06-22 17:57打开
按原价降序刻画贪心失败的关键交换对,用组合数统计坏定价方案后从 2^n 中扣除。
luoguP14636
贪心组合计数排序
提高+/省选-2026-06-22 17:57打开
先把打乱后的座位顺序映射成原座位下标序列,再把不满值转化成这个整数序列的逆序对数量。
luoguP5149
归并排序逆序对字符串哈希
普及+/提高2026-06-21 15:31打开
利用每轮比赛前排名有序的性质,打完后胜者组和败者组各自仍有序,再线性归并回新排名。
luoguP1309
归并排序排序模拟思维
普及+/提高2026-06-21 15:27打开
把 01 串的最长不下降子序列转成前缀差值区间最大值,最长上升子序列则只需判断是否存在 0 在 1 前面。
luoguP7809
前缀和ST表思维区间最值
提高+/省选-2026-06-21 14:58打开
把极大极小乘积按 B 区间符号分三类讨论,只需在 A 区间查询最值、最小正数、最大负数和是否有零。
luoguP8818
ST表分类讨论极小化极大思维
提高+/省选-2026-06-21 14:48打开
按 b_i 从大到小离线,把满足 a_j >= 当前阈值的位置加入有序集合,再查询环上最近活跃点距离。
luoguP7333
排序数据结构思维
普及+/提高2026-06-21 14:44打开
按 N 与 M 的大小分类,把条件改写成在前半串循环串中匹配一段前后缀,再用 KMP 与哈希统计可行配对。
luoguP3318
字符串KMP哈希建模分类讨论
提高+/省选-2026-06-21 14:34打开
按被询问到的每个 k 分开离线模拟,只维护该 k 的向后串计数;合并分裂时只更新边界附近 k-1 个起点。
luoguP3823
字符串哈希链表离线计数建模
NOI/NOI+/CTSC2026-06-21 14:25打开
枚举删除的那一位,把删掉该位后相同的字符串分到同一组,每组贡献组合数。
luoguP4503
字符串哈希计数建模
普及+/提高2026-06-21 14:19打开
先按全 # 边框切出所有窗口,再把每个窗口在允许旋转下做最小表示,用集合统计不同图案个数。
luoguP3678
模拟矩阵分类讨论
普及/提高-2026-06-21 14:15打开
把所有 DNA 串拼接后按长度 k 的前缀分组,统计每个相同碱基串在各物种中的出现次数,再做组合计数。
luoguP8643
字符串后缀数组计数组合计数
提高+/省选-2026-06-21 14:08打开
利用插入字符只会落在中间分界线两侧之一,分别线性判断两种情况,再分类讨论唯一性。
luoguP6739
字符串分类讨论建模
普及+/提高2026-06-21 14:01打开
先求每个后缀有多长前缀能作为 s 的子序列,再按后缀字典序和两两 LCP 去重统计不同字符串。
luoguP7469
字符串计数建模排序
提高+/省选-2026-06-21 13:46打开
把长度为 8 的子串和密码都转成 26 个字母的计数签名,再用滑动窗口统计每种签名出现次数。
luoguP8630
字符串滑动窗口哈希
普及/提高-2026-06-21 13:43打开
利用字典保持插入顺序的特性,用 dict.fromkeys 一步完成保序去重。
luoguP4305
哈希去重字典python
入门2026-06-21 13:40打开
枚举跳跃高度和连跳次数,在固定参数下对位置与当前连跳进度做记忆化搜索,最后减去升级费用并比较最优方案。
luoguP3257
动态规划记忆化搜索状态设计枚举
提高+/省选-2026-06-21 13:32打开