题目列表

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

共 1485 题
OJ题号标题标签难度最后更新解析
RainboyOJ1671
把五档宇宙速度门槛收进数组,数出速度 v 达标的档数 k,再输出数字前缀串 12...k,k 为 0 时输出 0。
-入门2026-10-06 01:45
RainboyOJ1672
通过一次遍历找出二维网格中所有整数的最大值与最小值,计算两者之差即为玉米杆高度差。
模拟极值
入门2026-10-06 01:45
RainboyOJ1652
线性 DP 计数:按前缀末位性别转移,以牝牛结尾等于总方案数,以牡牛结尾回看 K+1 位之前的总方案数,O(N) 递推取模。
动态规划计数DPpython
普及-2026-10-06 01:41
RainboyOJ1663
巴什博弈:每步可取 1~K 颗,先手必胜当且仅当 N 不是 K+1 的倍数,O(1) 判定。
博弈论数学
入门2026-10-06 01:38
RainboyOJ1648
二项式定理一步到位:x^n y^m 项系数 = C(k,n)·a^n·b^m mod 10007,组合数 + 快速幂即可。
数学二项式定理快速幂组合数
入门2026-10-06 01:38
RainboyOJ1639
把三个周期高峰同天写成同余方程组,用中国剩余定理(CRT)求出周期 23×28×33=21252 内的唯一解,再对给定时间做环形减法得到下一次同天的距离。
数论中国剩余定理同余方程
普及2026-10-06 01:36
RainboyOJ1644
加权 Fibonacci 和有封闭形式 T(n)=nF(n+2)-F(n+3)+2,先用快速倍增 O(log n) 求出相邻 Fibonacci 对,再一代入公式。
数学递推快速幂
普及2026-10-06 01:30
RainboyOJ1641
按矩阵乘法定义,三重循环直接计算结果矩阵每个元素。
矩阵模拟
入门2026-10-06 01:29
RainboyOJ1632
用扩展欧几里得求 ax + by = 1 的特解,再把 x 取模调到最小正整数解。
数论扩展欧几里得同余方程
入门2026-10-06 01:24
RainboyOJ1627
辗转相除法求千位大整数的 gcd:手写高精度大整数取模,C++ 实现欧几里得算法。
数论gcd辗转相除法python
普及-2026-10-06 01:24
RainboyOJ1620
n 恰为两个不同质数之积,较小质因数必不超过 √n,从 2 试除到 ⌊√n⌋ 命中后用 n 除以它即得较大质数。
数论枚举python
普及-2026-10-06 01:22
RainboyOJ1622
欧拉筛预处理素数表,每次询问贪心取最小的奇素数 a,并 O(1) 判断 n - a 是否为素数。
数论素数筛法贪心
普及-2026-10-06 01:19
RainboyOJ1616
指数 b 可达 10^9,用二进制拆分把 a^b 化成若干 a^(2^k) 之积再相乘,Python 三参数 pow 一步完成 O(log b) 模幂。
数学快速幂python
入门2026-10-06 01:04
RainboyOJ1615
判型后套用通项:等差 O(1),等比用快速幂 O(log k)。
入门数学一本通python
入门2026-10-06 01:04
RainboyOJ1617
每轮相当于全体位置编号 +m (mod n),用快速幂求 m·10^k mod n,一步算出答案。
-入门2026-10-06 01:04
RainboyOJ1594
把每行压成不超过 48 个合法行状态,按逐列不同色的相容表逐行滚动递推,被固定的第 K 行把计数劈成上下独立两半再相乘。
动态规划计数网格python
普及2026-10-06 00:55
RainboyOJ1589
区间计数先化成前缀计数 f(x),再用 (位置, 是否贴上界, 前一位是否为 6) 三元组状态的记忆化数位 DP 逐位统计不含 4 与 62 的数。
数位DP记忆化搜索python
普及-2026-10-06 00:55
RainboyOJ1597
单调队列求滑动窗口最值:队尾淘汰被新元素支配的下标、队首弹出过期下标,队首即窗口答案,两遍 O(N) 扫描输出最小值行与最大值行。
单调队列滑动窗口最值python一本通
普及2026-10-06 00:54
RainboyOJ1547
单点加与区间求和交替:树状数组按 lowbit 把前缀和拆成 O(log n) 段,查询两次前缀和相减、修改沿链上跳,初值正序推贡献 O(n) 建树,总 O(n + m log n)。
树状数组前缀和python
普及-2026-10-06 00:50
RainboyOJ1582
把人事关系看成一棵树,每个节点记录选与不选两种最优值,自底向上合并,O(N) 求最大欢乐度。
树形DP动态规划树
普及-2026-10-06 00:48
RainboyOJ1577
真约数和小于自身就与它连一条无向边,可证建出的图是森林:最多变换步数就是树的直径,筛法建图后每棵树两次 BFS 求直径取最大。
图论树数论筛法python
普及-2026-10-06 00:48
RainboyOJ1575
二叉树树形背包:枚举左右子树各保留多少条边完成状态转移。
动态规划树形 DP背包 DP
普及2026-10-06 00:48
RainboyOJ1538
查询位置单调递增,用一个只前进的指针维护前缀和:走过车厢时累加,未到车厢的上下车直接改状态,总复杂度 O(n+k)。
前缀和双指针python
普及-2026-10-06 00:42
RainboyOJ1537
动态区间相交计数化归为两个端点前缀计数:答案 = 左端点 ≤ r 的段数 − 右端点 < l 的段数,两棵树状数组在线维护,O(m log n)。
树状数组前缀和python
普及-2026-10-06 00:42
RainboyOJ1542
两个单调队列分别维护窗口最值候选:队尾淘汰被新元素支配的下标、队首弹出过期下标,每个元素进出各一次,O(n) 求出全部滑动窗口的最大值与最小值。
单调队列滑动窗口最值python一本通
普及2026-10-06 00:41
RainboyOJ1523
把“每条 a 到 b 的路径都经过 v”转成删除判据:删掉 v 后 a 到不了 b 即为必经点,逐点做一次 DFS 连通性判定,取编号最小者。
图论必经点连通性python
普及-2026-10-06 00:37
RainboyOJ1530
并查集维护无向图连通块,统计每个含边连通块中奇度顶点的数量,计算最少一笔画覆盖数。
图论并查集欧拉图
普及2026-10-06 00:36
RainboyOJ1536
利用输入按 y 增序给出的特性将二维偏序降维,使用树状数组维护横坐标前缀和统计星星等级
树状数组数据结构
普及2026-10-06 00:35
RainboyOJ1535
单点加与区间求和交替:树状数组按 lowbit 把前缀和拆成 O(log n) 段,修改沿链更新、查询两次前缀和相减,O(n + m log n)。
树状数组前缀和python
普及-2026-10-06 00:35
RainboyOJ1487
将卫星设备等价于免费边连接连通块,利用 Kruskal 最小生成树消去最大边权求瓶颈距离
最小生成树贪心并查集
普及2026-10-06 00:31
RainboyOJ1507
把小路拆成双向正权边、虫洞取负权,把“回到过去”化为负环判定:超级源点做 n 轮松弛,第 n 轮仍能松弛即输出 YES。
图论最短路Bellman-Ford负环
普及-2026-10-06 00:27
RainboyOJ1474
将数字串按字典序排序后只需检查相邻两串是否为前缀关系,即可判定集合是否可立即解码。
字符串排序字典树
入门2026-10-06 00:24
RainboyOJ1488
引入超级源点,把「建电站费用」和「拉电网费用」统一成边权,在 n+1 个点的完全图上求最小生成树即得最小总花费。
图论最小生成树Prim超级源点贪心python
普及-2026-10-06 00:23
RainboyOJ1471
排序后只需检查相邻两串:字典序下前缀对必紧贴,一趟 sort 加相邻前缀判定即可。
字符串排序前缀python
普及-2026-10-06 00:19
RainboyOJ1465
用 KMP 匹配模式串,每次匹配成功立即计数并清零匹配指针,保证子串互不重叠。
字符串KMP贪心
普及-2026-10-06 00:19
RainboyOJ1466
用 KMP 失败函数求最长 border,最小正周期 p = n - pi[n-1];p 整除 n 时答案为 n/p,否则为 1。
字符串KMP
普及2026-10-06 00:18
RainboyOJ1464
哈希表记录雪花形状最近出现位置,双指针滑动窗口 O(n) 求最长无重复连续子序列
双指针滑动窗口哈希表
普及2026-10-06 00:18
RainboyOJ1456
用 unordered_set 维护图书集合,add 插入,find 查询。
字符串哈希表
入门2026-10-06 00:13
RainboyOJ1455
KMP 单趟扫描统计模式串在文本中(可重叠)出现的次数:fail 数组预处理 + 主串扫一遍,均摊 O(|s1|+|s2|)。
字符串KMPpython
普及-2026-10-06 00:13
RainboyOJ1459
通过奇偶性判断与前缀字符串哈希 O(1) 拼接比较,枚举删除位置求出唯一的原字符串
字符串字符串哈希
普及2026-10-06 00:12
RainboyOJ1451
把 4×4 棋盘编码成 16 位掩码,相邻异色交换即两位同时翻转,在有限状态上跑 BFS 求最少步数。
BFS状态压缩
普及2026-10-05 23:56
RainboyOJ1450
将棋盘格子建为无权图,利用 BFS 逐层扩展求骑士从起点到终点的最少移动步数。
广度优先搜索图论最短路
入门2026-10-05 23:56
RainboyOJ1454
8 邻接等权连通块洪泛,每块只记录外部邻居有无更矮/更高者:无更高即山峰,无更矮即山谷,O(n²)。
广度优先搜索连通块网格图
普及2026-10-05 23:55
RainboyOJ1453
将 4x4 网格的 01 状态压缩为 16 位整数,BFS 搜索最少交换步数。
广度优先搜索状态压缩
普及2026-10-05 23:55
RainboyOJ1440
整数划分计数 DP:设 f[i][j] 为 i 拆成 j 个不减正整数之和的方案数,按末份是否为 1 转移,O(nk) 递推。
动态规划计数DP整数划分
入门2026-10-05 23:48
RainboyOJ1449
状态只有 8! 个,把每个排列看作节点、A/B/C 三种操作看作边,从基本状态 12345678 BFS,邻居按 A→B→C 顺序扩展且只在首达时记前驱,回溯即得字典序最小的最短操作序列。
BFS状态压缩置换
普及-2026-10-05 23:47
RainboyOJ1445
将矩形贴合拓扑依赖抽象为位掩码先决条件,使用状态压缩记忆化搜索结合同色贪心涂满求最少拿起刷子次数。
状压 DP记忆化搜索拓扑排序
普及2026-10-05 23:47
RainboyOJ1438
根据相似三角形建立人位置到影子长度的分段单峰函数,利用三分查找求最大影子长度。
三分计算几何
普及2026-10-05 23:47
RainboyOJ1431
枚举最远走到哪个湖定下路程,剩余 5 分钟段用小根堆反复取当前产量最高的湖,O(n·12H·log n) 求最大收获。
贪心堆枚举python
普及-2026-10-05 23:45
RainboyOJ1429
按右端点排序后贪心选取互不重合的线段,O(n log n) 求解区间调度。
贪心排序
普及-2026-10-05 23:32
RainboyOJ1433
把「最大的最小间距」转成单调可行性判定,用 O(N) 贪心判定给定间距能否放下 C 头牛,再在答案值域上二分。
-普及-2026-10-05 23:30
RainboyOJ1428
按原序列顺序贪心累加,当前段和超过上限时另起一段,单次线性扫描求得最少分段数。
贪心
入门2026-10-05 23:30
RainboyOJ1427
贪心加堆:每次合并最小的两个数得 max,取负后每次合并最大的两个数得 min,两遍小根堆后作差,O(N log N)。
贪心堆python
普及-2026-10-05 23:26
RainboyOJ1424
圆覆盖转中心线有效区间后,按左端点排序并反复选左端不超过当前覆盖点、右端最远的区间贪心覆盖。
贪心排序区间覆盖
普及-2026-10-05 23:23
RainboyOJ1423
按区间右端点升序排序,区间缺树时贪心靠右侧放置以最大化后续重叠复用。
贪心区间问题
普及2026-10-05 23:22
RainboyOJ1426
反悔贪心:按期限排序逐个安排,堆里存已安排游戏的扣款数,放不下就弹出扣款最小的(记为超期),未被安排的扣款总和最小即最优。
贪心堆
普及-2026-10-05 23:22
RainboyOJ1411
埃氏筛一次性建出整个值域的素数表,区间内每个数 O(1) 查自身与反序数的素性,逗号拼接输出,无解输出 No。
素数筛法数学python
入门2026-10-05 23:15
RainboyOJ1412
通过二进制位统计枚举 1~1000 内数字并分类为 A 类数与 B 类数。
进制转换位运算模拟
入门2026-10-05 23:15
RainboyOJ1422
按活动结束时间升序排序后贪心选取互不冲突的区间,求最大兼容活动数。
贪心排序
入门2026-10-05 23:14
RainboyOJ1413
从小到大枚举进制 B(2~40),检查三个数的每一位数字是否合法并用 Horner 展开求值,第一个满足 p×q=r 的 B 即答案。
枚举进制
入门2026-10-05 23:14