题目列表

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

共 1485 题
OJ题号标题标签难度最后更新解析
RainboyOJ3615
枚举分子、分母均不超过 L 的既约分数,取不小于 A/B 且差最小者。
枚举数论python
普及2026-10-06 15:14
RainboyOJ3616
按圈层分解螺旋矩阵:先算目标格所在圈之前所有完整圈的格子数,再按上右下左四段累加圈内偏移,O(n) 无需建表即可定位任意格子的值。
-普及2026-10-06 15:14
RainboyOJ3605
按 '+' 拆分加法项,每项内按 '*' 累积乘积,扫描中每步对 10000 取模,即得答案的后 4 位。
模拟数学python
普及-2026-10-06 15:08
RainboyOJ3606
前缀最大子段和(Kadane 滚动值)+ 分数的前缀最大值 g,一遍 O(n) 扫描求所有人的分数最大值,按符号取模输出。
最大子段和Kadane递推前缀最大值python
普及-2026-10-06 15:07
RainboyOJ3604
数位统计:把 n 按每个数位切成高位/当前位/低位三段,用乘法原理一次性算出每位上 x 的出现次数,再对 0 做前导零修正,复杂度 O(log n)。
数位统计数学python
普及-2026-10-06 15:07
RainboyOJ3594
n 是两个不同质数之积,从小到大试除到 √n 时第一个命中的因数就是较小质因数,直接输出商即较大的质因数。
数论python
普及-2026-10-06 14:54
RainboyOJ3588
从最后铺的地毯往前枚举,第一个覆盖查询点的矩形就是答案。
模拟
普及-2026-10-06 14:42
RainboyOJ3591
二项式定理得 x^n y^m 项系数为 C(k,n)a^n b^m,杨辉三角递推组合数加快速幂取模 10007
-普及2026-10-06 14:42
RainboyOJ3582
用队列按进入顺序模拟容量 M 的内存、布尔数组判命中:未命中计数入队,满员淘汰队首,O(N) 求出查词典次数。
模拟队列python
普及-2026-10-06 14:35
RainboyOJ3586
每轮按当前排名两两配对、胜者加一分的瑞士轮模拟:发现胜者组与负者组各自保持有序,用归并代替每轮整体排序,复杂度从 O(RN log N) 降到 O(N log N + RN)。
-普及2026-10-06 14:34
RainboyOJ3585
单词与文章统一转小写,逐位检查匹配并判断左右是否为单词边界。
输入输出字符串python
普及-2026-10-06 14:33
RainboyOJ3579
小涵最多只能拿到每个武将的次大默契值:先抢次大值最大的武将,电脑必抢其最强搭档,小涵再抢次强搭档即必胜,答案就是全体次大值的最大者。
博弈思维最大次大值python
普及2026-10-06 14:26
RainboyOJ3576
区间 [L,R] 中数码 2 出现次数,用前缀差按位分段 O(log R) 计数。
入门数位计数python
入门2026-10-06 14:26
RainboyOJ3577
用小根堆维护每个龙头的最早空闲时刻,依次分配 n 名同学,最后取最大结束时刻。
模拟贪心优先队列堆python
普及-2026-10-06 14:26
RainboyOJ3573
由 gcd 与 lcm 条件推出 x 必是 b1 的约数,用试除 O(√b1) 枚举候选并通过三个 gcd 判定统计合法 x 的个数。
数学gcd约数枚举
普及-2026-10-06 14:26
RainboyOJ3566
枚举 A、B 后 C=A+B 唯一确定,O(1) 核对三个数的火柴根数之和是否等于 n-4。
枚举剪枝计数python
普及-2026-10-06 14:16
RainboyOJ3568
按规则输出一元多项式:跳过零项,首项省略正号,高于 0 次且系数绝对值为 1 时省略 1。
模拟字符串python
普及-2026-10-06 14:16
RainboyOJ3572
扫描样例对建立“原字母→密字”字典,同一原字母冲突或 26 字母不成双射即输出 Failed,否则用逆表逐字符翻译电报。
字符串模拟python
普及-2026-10-06 14:14
RainboyOJ3563
按后→前、左→右、下→上的画家算法,把固定 7×6 字形覆盖到字符画布上生成立体图。
模拟python
普及2026-10-06 14:09
RainboyOJ3561
每条行缝/列缝独立统计能隔开的说话对数,各取贡献最大的 K/L 条缝,贪心一步到位。
贪心排序统计python
普及-2026-10-06 14:05
RainboyOJ3565
统计出现过的字母的次数,取最大值与最小值之差,试除判断差值是否为质数。
-入门2026-10-06 14:04
RainboyOJ3557
扫描每个减号,判定它是否满足展开条件(两侧同类且左 < 右),再按 p1/p2/p3 三个参数生成中间填充段,O(n) 模拟。
模拟字符串NOIPpython
普及2026-10-06 13:52
RainboyOJ3560
按 ISBN-10 规则取前 9 位数字乘 1~9 求和后模 11,余 10 记为 X,与原识别码比较决定输出 Right 或补正后的完整 ISBN。
入门数学python
入门2026-10-06 13:51
RainboyOJ3555
汉诺塔双塔版:同尺寸两盘看作整体,A_n = 2A_{n-1}+2,通项 2^{n+1}-2,高精度输出。
递推数学高精度
普及-2026-10-06 13:51
RainboyOJ3552
读入三科成绩算总分,按总分、语文、学号排序后输出前 5 名。
入门条件判断python
入门2026-10-06 13:43
RainboyOJ3554
纯跑步与"够魔就闪、否则休息"两条路线每秒取较优者,逐秒模拟即可得到最短逃离时间。
贪心数学模拟
普及2026-10-06 13:42
RainboyOJ3546
把 Jam 数字看作升序字母组合:从右找第一个未到上界的位加 1,其后各位重置为最小连续字母,即得字典序后继,单次 O(w)。
模拟构造python
入门2026-10-06 13:42
RainboyOJ3540
逐名学生按五条严格大于条件累加奖金,并用严格大于维护最大者以保证并列取先出现者,O(N) 模拟。
模拟入门
入门2026-10-06 13:36
RainboyOJ3545
把问题看成 0/1 背包,逐件物品倒序滚动一维数组求价格与重要度乘积和的最大值。
动态规划01背包python
普及-2026-10-06 13:35
RainboyOJ3544
排序后 unique 去重,直接输出个数与升序结果。
排序python
入门2026-10-06 13:35
RainboyOJ3538
01 背包入门题:dp[t] 表示 t 时间内能采到的最大总价值,每株草药倒序枚举容量完成 01 转移,O(MT) 时间、O(T) 空间。
动态规划背包python
普及-2026-10-06 13:35
RainboyOJ3533
用小根堆每次取出当前最小的两堆合并(哈夫曼贪心),代价累加即最小体力耗费,复杂度 O(n log n)。
贪心优先队列堆哈夫曼树
普及2026-10-06 13:30
RainboyOJ3534
枚举峰:以它结尾的最长严格上升子序列 + 以它开头的最长严格下降子序列,峰被重复计算需减 1,答案为 N 减去最大单峰子序列长度。
动态规划线性DPlispython
普及-2026-10-06 13:28
RainboyOJ3536
把板凳并入伸手高度,一次线性扫描统计高度不超过「伸手高度+30」的苹果个数,O(10) 判定题。
入门模拟python
入门2026-10-06 13:27
RainboyOJ3537
开长度 $L+1$ 的布尔桶给每个整数点打删除标记,重叠区间重复置 1 幂等,最后数 0 的个数即剩余树数。
入门模拟python
入门2026-10-06 13:26
RainboyOJ3531
排列按字典序对应整数,加 M 就是做 M 次 next_permutation:找枢轴、换最小可增大者、反转降序后缀,单步 O(N),总复杂度 O(NM)。
模拟排列next_permutation
普及2026-10-06 13:16
RainboyOJ3530
递归处理 01 串:先递归左右两半,返回前把当前子串类型 B/I/F 写入答案,调用顺序即后序遍历。
二叉树递归字符串python
普及2026-10-06 13:12
RainboyOJ3532
逐月维护现金与存款两个状态:加 300 后不够预算即输出 -m,花完把整百转存,年末用整除结算 20% 利息。
入门模拟python
入门2026-10-06 13:11
RainboyOJ3521
求 1~n 经栈操作得到的合法输出序列总数,即第 n 个卡特兰数,用 O(n) 递推计算。
组合数学卡特兰数递推python
普及-2026-10-06 13:03
RainboyOJ3528
逐天求校内与妈妈安排课时之和,边走边更新最大总课时及对应天数;最大值严格超过 8 时输出该天编号,否则输出 0。
入门模拟最值python
入门2026-10-06 13:02
RainboyOJ3520
对 W/L 比分序列分别按 11 分制和 21 分制逐球模拟计分:达到局分且分差至少 2 时一局结束,末尾未完成局也要输出当前比分。
模拟字符串
入门2026-10-06 13:02
RainboyOJ3516
链上每条边的净搬运量等于前缀盈余,盈余非零的边各搬一次即最优:答案就是非零前缀和的个数,一遍贪心 O(N)。
贪心前缀和python
普及-2026-10-06 12:43
RainboyOJ3518
把接球判定化为滑动区间取并:球在车顶到地面的时间窗内,车身扫过的连续区间取并,数出其中的整数球位。
数学浮点数模拟python
普及2026-10-06 12:41
RainboyOJ3515
棋盘路径计数:标记马的 9 个控制点,滚动数组递推 f[j]=f[j]+f[j-1],控制点清零。
-普及2026-10-06 12:40
RainboyOJ3514
把数字变换规则建成 10 个点的有向图,用位集 Floyd 求传递闭包,答案为每位可达数字个数的乘积(unsigned __int128)。
图论传递闭包乘法原理python
普及2026-10-06 12:40
RainboyOJ3508
三次函数在两根之间不变号,对 [-100,100] 每 0.5 扫描采样点找变号区间二分求根,导数零点收缩处理重根端点。
二分数学数值计算
普及2026-10-06 12:33
RainboyOJ3509
把 n 拆成 k 份不计顺序的正整数:按最小值是否为 1 二分得到 p_k(n)=p_{k-1}(n-1)+p_k(n-k),记忆化搜索 O(nk) 计数。
动态规划记忆化搜索整数分拆python
普及-2026-10-06 12:31
RainboyOJ3512
利用调和级数严格递增且发散,从 1 开始逐项累加 1/n,部分和第一次超过 K 时的 n 即为答案,最大 K=15 也只需约 3×10^6 次加法。
模拟数学入门
入门2026-10-06 12:31
RainboyOJ3505
x0∤y0 直接判 0;否则令 k=y0/x0,问题化为把 k 拆成互质有序对,每个质因子幂整段分配,答案 2^ω(k)。
数论最大公约数质因数分解计数python
普及-2026-10-06 12:16
RainboyOJ3504
把『n 左边加一个不超过 n/2 的数』的生成过程建成递推 f(n)=1+Σf(1..n/2),相邻前缀和降为一维线性递推,预处理后 O(1) 回答。
入门动态规划递推前缀和python
入门2026-10-06 12:16
RainboyOJ3506
后序末位定根、中序按下标切成左右子树,在两串切片上递归拼出根+左+右即得先序,无需显式建树。
二叉树递归遍历python
普及-2026-10-06 12:15
RainboyOJ3507
把装箱问题化成"体积=价值"的 0/1 背包:逐件物品倒序扫容量做一维 DP,dp[V] 即最大装载体积,答案为 V-dp[V]。
动态规划背包01背包python
普及-2026-10-06 12:15
RainboyOJ3499
逐价位建立关于补贴额 t 的一次不等式,取上下界交集后在可行区间中选绝对值最小的整数。
数学python
普及2026-10-06 12:12
RainboyOJ3502
单词接龙求最长拼接:预处理每对词的最小合法重叠,再以“最后词 + 各词用量”为状态记忆化搜索最大长度。
搜索记忆化字符串python
普及2026-10-06 12:09
RainboyOJ3500
把 N 反复 divmod 负基数,余数为负时借一位(商 +1、余数 +R)规范化到 [0,R),低位到高位收集后反转即为答案。
进制转换数学模拟
普及-2026-10-06 12:08
RainboyOJ3498
逐项扫描一元一次方程,左半边按原符号、右半边变号累加,合并成 ax+b=0 后解 x=-b/a 保留三位小数。
模拟字符串解析
普及2026-10-06 12:08
RainboyOJ3180
数位统计前缀差:cnt(n,d) 逐位拆 high/cur/low 计算每位贡献,0 需扣掉前导零情形,答案作 cnt(b)-cnt(a-1)。
数位DP递推
普及2026-10-06 11:58
RainboyOJ3055
用 Trie 存所有号码并在末尾补哨兵,插入途中发现更早号码提前终止或当前号码结尾仍有后继即输出 NO。
Trie字符串
普及2026-10-06 11:42
RainboyOJ3045
每次合并两堆果子,代价为重量之和,求最小总代价。用小根堆每次取最小的两堆合并,即 Huffman 树贪心。
贪心二叉堆Huffman树
普及2026-10-06 11:36
RainboyOJ3038
预处理前缀哈希 h[i]=h[i-1]*B+s[i],每次询问用 h[r]-h[l-1]*B^(r-l+1) 在 O(1) 内取出子串指纹,比较两区间指纹判断子串是否相同。
字符串hash哈希
普及2026-10-06 11:33