题目列表

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

共 3718 题
OJ题号标题标签难度最后更新解析
洛谷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
USACO1087
用单调栈预处理每个前缀和后缀的最少刷漆笔数,删区间后直接相加。
栈前缀和字符串usaco
普及2026-10-07 12:15
USACO1110
用队列维护被迫补牛的位置,每加入一头牛后只重新检查它和四邻域的舒适状态。
模拟BFS网格usaco
普及2026-10-07 12:15
USACO1326
排序后维护基础贡献,单次查询只计算删除旧值再插入新值造成的区间位移贡献。
排序前缀和二分usaco
普及+/提高-2026-10-07 12:15
USACO1373
把一次喷洒看成只改变二阶差分的一个位置,答案为二阶差分绝对值和。
差分二阶差分贪心模拟usaco
普及2026-10-07 12:15
USACO1109
把相邻两段边的转向累计起来,总转角为正则逆时针,为负则顺时针。
几何模拟字符串
普及-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
RainboyOJ1393
必选边先全部累加并缩成连通块,再对可选边按费用做 Kruskal 最小生成树补齐连通:缩点 + MST。
并查集最小生成树Kruskal
普及+/提高-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
洛谷P2704
先预处理单行合法状态,再按行做只依赖前两行的状压 DP,求最多能放多少炮兵。
状态压缩动态规划轮廓DP经典题
提高+/省选-2026-10-07 12:15
洛谷P3888
把较短维压成二进制状态,按行做三行覆盖检查的轮廓 DP,并用 `(总代价, 油库数量)` 做字典序最优。
状态压缩动态规划轮廓DP最小支配集
提高+/省选-2026-10-07 12:15
洛谷P8756
把每一列压成二进制状态,利用马只会影响前两列的性质,做记录前两列状态和已放马数量的轮廓 DP。
状态压缩动态规划轮廓DP计数dp
提高+/省选-2026-10-07 12:15
洛谷P8733
先在“单次飞行不超过 D”的图上跑 Floyd 求任意两村庄间最短可达代价,再在这个距离矩阵上做状压 TSP。
状态压缩最短路Floyd动态规划
提高+/省选-2026-10-07 12:15
洛谷P7859
把每份披萨看成一个原料子集,直接状压枚举所有 2^N 个子集并检查是否包含冲突对即可。
状态压缩枚举位运算图论
普及-2026-10-07 12:15
洛谷P2899
设 dp[u][0/1/2] 分别表示 u 放塔、被儿子覆盖、等父亲覆盖的最少塔数,用三状态树形 DP 求树上最小支配集。
树形DP动态规划树最小支配集
普及+/提高-2026-10-07 12:15
洛谷P3177
设 dp[u][j] 为 u 子树选 j 个黑点的最大收益,把同色点对距离和拆成每条边两侧黑点对与白点对数量乘边权的贡献来转移。
树形DP动态规划树推导
提高+/省选-2026-10-07 12:15
洛谷P7846
先用并查集缩掉所有 t=2 的相等点,再只保留 t=0 的不同色森林;计数是森林染色,最小和是带点权二分染色。
并查集树图论计数二分图染色
提高+/省选-2026-10-07 12:15
洛谷P4084
设 dp[u][c] 表示 u 染成颜色 c 时整棵子树的合法方案数,再把每个儿子所有不同色状态的方案数乘起来。
树形DP动态规划计数dp树
普及+/提高-2026-10-07 12:15