题目列表

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

共 1485 题
OJ题号标题标签难度最后更新解析
RainboyOJ1217
棋盘上放 k 枚互不同行同列的棋子:逐行决策并把列占用压成 n 位掩码,记忆化搜索 O(n²·2ⁿ) 计数。
搜索递归位运算
普及-2026-10-05 05:50
RainboyOJ1216
把黑砖看成网格图的顶点,答案是起点所在连通分量的大小;一次洪水填充 O(WH) 求出。
搜索深度优先搜索广度优先搜索网格连通性python
普及-2026-10-05 05:42
RainboyOJ1214
预处理所有 92 个合法解并排序,随后 O(1) 回答每个查询。
搜索回溯位运算
普及2026-10-05 05:42
RainboyOJ1215
把迷宫可达性转成网格图连通性,从 A 出发用入栈即标记的 visited 做一次迭代 DFS,O(n²) 判断 B 是否同属一个连通分量。
搜索深度优先搜索网格python
普及-2026-10-05 05:42
RainboyOJ1210
试除法分解素因子并按升序输出表达式。
入门数学素数
入门2026-10-05 05:38
RainboyOJ1212
从左上角做四连通 DFS,用 26 位掩码记录路径上用掉的字母,新字母才可进入;字母不重复蕴含格子不重复,故一个掩码即可替代格子访问数组。
搜索DFS位运算回溯python
普及-2026-10-05 05:37
RainboyOJ1211
把生成规则 y→2y+1、y→3y+1 反过来用:x 的父亲只能是 (x-1)/2 或 (x-1)/3,反向递归收缩并记忆化,判断 x 能否缩回种子 k。
搜索递归记忆化搜索python
普及-2026-10-05 05:37
RainboyOJ1209
逐次通分相加并立即用 gcd 约分,保持最简后按整数或分数格式输出。
模拟gcd分数
入门2026-10-05 05:37
RainboyOJ1207
用辗转相除法求最大公约数:反复把 (a, b) 换成 (b, a mod b),公因数集合始终不变而第二个数严格变小,b 归零时 a 就是答案。
数论gcd辗转相除法python
普及-2026-10-05 05:32
RainboyOJ1208
把 n 按二进制拆成 2 的幂之和,指数用同一个递归函数继续展开:指数 0 写 2(0)、指数 1 写 2、更大写 2(...),余项用 + 拼接。
递归位运算模拟python
普及-2026-10-05 05:32
RainboyOJ1205
递归分治:把 n-1 个盘移到辅助柱,移最大盘,再把 n-1 个盘移到目的柱。
递归分治汉诺塔
入门2026-10-05 05:32
RainboyOJ1206
把 M 个相同苹果放进 N 个相同盘子(可空),按‘有没有空盘’分类记忆化递推求分法数。
递推递归
入门2026-10-05 05:32
RainboyOJ1203
多组括号匹配:一趟从左到右扫描,栈存未配对左括号下标;遇栈空右括号标 ?,扫描后残留左括号标 $,线性时间。
字符串栈模拟python
入门2026-10-05 05:27
RainboyOJ1202
利用同余封闭性先递推打表到最大 k,再 O(1) 回答每组询问。
递推打表同余
入门2026-10-05 05:27
RainboyOJ1204
按最后一步跨 1 级还是 2 级分类,得互斥完备的递推 f(n)=f(n-1)+f(n-2)(即斐波那契),预处理 1~30 的表后逐行查表输出。
入门递推数学python
入门2026-10-05 05:26
RainboyOJ1201
按定义预处理 F(1..20),每个询问 O(1) 回答。
入门递推递归记忆化搜索python
入门2026-10-05 05:26
RainboyOJ1198
递归下降求值前缀表达式:当前 token 为运算符时递归求左右子式,否则返回浮点值。
递归表达式求值前缀表达式
入门2026-10-05 05:19
RainboyOJ1199
输入串已按字母序排好,按字典序输出它的全部 n! 个排列。
入门字符串递归枚举
入门2026-10-05 05:19
RainboyOJ1196
把落点压成「本行只有一格」和「本行已横走成段」两类,按 3 种/2 种续走做线性递推。
递推动态规划计数python
普及-2026-10-05 05:18
RainboyOJ1195
2^n 种符号方案只有 k 种余数状态:用布尔数组保存可达余数集合,逐个数字平移出 ±a_i 两支,O(nk) 判定余数 0 是否可达。
动态规划位运算数学python
普及-2026-10-05 05:11
RainboyOJ1193
用 Fibonacci 递推计数:每天吃掉 1 或 2 块,f[i]=f[i-1]+f[i-2],滚动变量 O(1) 空间实现。
递推Fibonacci入门
入门2026-10-05 05:11
RainboyOJ1192
按最后一个盘子是否为空做不重不漏二分:空则少一个盘子,非空则每个盘子各垫一个苹果,得 f(m,n)=f(m,n-1)+f(m-n,n),记忆化求整数拆分数 p_{≤n}(m)。
入门动态规划计数DP记忆化搜索python
普及-2026-10-05 05:11
RainboyOJ1194
把网格路线拆成步序列:每条路恰含 m-1 步上、n-1 步右,路线与「在总步数里选上步位置」一一对应,答案即组合数 C(m+n-2, m-1),用 math.comb 一步求出。
入门网格动态规划组合计数python
入门2026-10-05 05:11
RainboyOJ1189
Pell 数列取模:预计算到最大下标后 O(1) 查表。
入门递推数学python
入门2026-10-05 04:48
RainboyOJ1190
按最后一步跨 1/2/3 阶分类得三阶线性递推,先打表再回答多组询问。
入门递推动态规划记忆化python
入门2026-10-05 04:48
RainboyOJ1188
多组询问共享同一个数列:一次线性递推把斐波那契尾三位预计算到 max(a),之后每问 O(1) 查表。
入门递推数学python
入门2026-10-05 04:48
RainboyOJ1187
统计 26 个小写字母的出现次数,再从 'a' 到 'z' 依次取严格更大者,即可得到次数最多且 ASCII 最小的字符。
字符串计数
入门2026-10-05 04:41
RainboyOJ1184
把随机数本身当作桶的下标:写入即完成去重,按下标升序扫描即完成排序,时间 O(N+V)。
桶排序计数排序排序去重python
入门2026-10-05 04:41
RainboyOJ1185
用 set 去重并按 ASCII 字典序输出所有不同单词。
排序字符串集合输入输出python
入门2026-10-05 04:41
RainboyOJ1186
一遍哈希计数取众数,用整数不等式 2*times > n 判定严格过半,避开浮点与整除两类半判定错误。
入门计数哈希表python
入门2026-10-05 04:41
RainboyOJ1183
把三条排队规则压成一个排序键(是否非老年人、老年人负年龄、登记序号),字典序比较一次排序同时完成分组、组内排序与平局裁决。
入门排序python
入门2026-10-05 04:34
RainboyOJ1181
奇数降序在前、偶数升序在后,用自定义比较函数一次 sort 即可。
入门排序数组python
入门2026-10-05 04:33
RainboyOJ1182
按性别分桶后 male 升序、female 降序两次排序拼接输出,两位小数与单空格分隔。
排序入门python
入门2026-10-05 04:33
RainboyOJ1179
把「总分降序、语文降序、学号升序」三段规则合成一个排序键 (-总分, -语文, 学号),一次排序取前 5 名。
排序模拟python
入门2026-10-05 04:26
RainboyOJ1178
把学生按成绩降序排序,同分时按姓名字典序升序输出。
排序
入门2026-10-05 04:26
RainboyOJ1176
把每个学生存成(学号, 成绩)二元组,按成绩降序排序后取第 k 个;注意学号按字符串读入保留前导零,成绩用 %g 输出。
排序浮点数python数组
入门2026-10-05 04:26
RainboyOJ1177
遍历序列,用位运算筛出奇数,升序排序后以逗号分隔输出。
入门数组排序
入门2026-10-05 04:25
RainboyOJ1174
200 位十进制大整数相乘,结果最多 400 位;按位拆十进制做 O(nm) 竖式乘,最后统一进位输出。
高精度入门python
入门2026-10-05 04:18
RainboyOJ1175
用字符串模拟竖式除法,逐位求出大整数除以 13 的商和余数。
高精度
入门2026-10-05 04:18
RainboyOJ1172
n! 有 35660 位,必须高精度:数组一位存一个数字,每次乘 i 后统一进位。
高精度数学python
入门2026-10-05 04:18
RainboyOJ1169
高精度竖式减法:从末位逐位相减,维护单个借位 0/1,越界位按 0 处理。
高精度模拟字符串
普及-2026-10-05 04:11
RainboyOJ1168
两个 200 位十进制数相加:用双指针从末位对齐,把进位写进循环条件逐位模拟竖式加法,最后去前导零。
高精度模拟字符串python
普及-2026-10-05 04:11
RainboyOJ1170
N≤100,2^N 最多 31 位十进制数,超出 64 位整数,必须用十进制位数组做高精度乘 2。
入门数学高精度
入门2026-10-05 04:11
RainboyOJ1171
把 30 位大整数按字符串读入,逐位递推余数 r = (r*10+d) % k,判断 2~9 中哪些数能整除它。
大整数同余模拟
入门2026-10-05 04:10
RainboyOJ1166
把嵌套根式看成递推 g_1=sqrt(1+x)、g_k=sqrt(k+g_{k-1}),从内向外一层循环折叠 n-1 次,O(n) 时间 O(1) 空间,保留两位小数输出。
递推数学python
入门2026-10-05 04:06
RainboyOJ1164
第 k 位数字就是 n 整除 10^(k-1) 之后对 10 取余。
入门数学python
入门2026-10-05 04:06
RainboyOJ1167
按题面给出的连分式递归定义直接计算 f(x,n),保留两位小数。
递归连分式模拟
入门2026-10-05 04:05
RainboyOJ1165
按题面二阶递推式记忆化递归求 Hermite 多项式,结果补两位小数输出。
数学递推递归记忆化搜索python
入门2026-10-05 04:05
RainboyOJ1161
递归除基取余:先递归商得到高位,回溯时输出当前余数。
入门递归进制python
入门2026-10-05 03:59
RainboyOJ1163
m≤3、n≤10 的阿克曼函数直接照三分支定义递归求值,最大 A(3,10)=8189 的调用栈 C++ 足够承受。
入门递归递推记忆化搜索python
入门2026-10-05 03:58
RainboyOJ1160
把 n 的十进制表示整串反转后按字符串输出,反转后开头出现的 0 要原样保留。
python字符串递归输入输出
入门2026-10-05 03:58
RainboyOJ1162
读取以 '!' 结尾的字符串,把 '!' 之前的部分逆序输出。
字符串入门字符串反转
入门2026-10-05 03:57
RainboyOJ1157
筛出 100 以内素数表,对每个偶数升序枚举第一个加数,首个两数皆素数的即为最小拆分。
入门枚举素数判定数学python
入门2026-10-05 03:53
RainboyOJ1159
题面数列从 0 开始,第 n 项就是零起编号的 F(n-1);用记忆化递归按递推式求,每个下标只算一次。
入门递推数学递归python
入门2026-10-05 03:50
RainboyOJ1158
用递归求 1..N 的和:明确参数、出口 n=0、转移 n+sum_to(n-1) 三要素,调用链是一条直链,时间与栈空间均为 O(N)。
递推递归python
入门2026-10-05 03:50
RainboyOJ1156
用格雷戈里级数在 x=1/√3 处逐项累加 arctan:分子每步乘 -x² 递推、分母取奇数,整项绝对值首次小于 1e-6 时停止,结果乘 6 输出。
入门数学浮点数python
入门2026-10-05 03:50
RainboyOJ1155
把三位回文数按 aba = 101a + 10b 直接生成 90 个候选,再对每个候选试除判素数;回文性由生成方式保证,无需运行期判回文。
入门枚举数论素数回文数python
入门2026-10-05 03:45
RainboyOJ1152
三次调用 max3 代入公式后浮点除法,%.3f 保留三位小数输出。
入门语法函数浮点数python
入门2026-10-05 03:45
RainboyOJ1153
枚举所有两位数,输出自身与十位个位对换后均为素数的数。
素数枚举
入门2026-10-05 03:44
RainboyOJ1148
线性扫描维护连续计数 run,每个位置先判 run 是否已达 k 再向右更新,逐点复刻标准程序的先判后更语义。
字符串枚举python
入门2026-10-05 03:37