题目列表

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

共 1485 题
OJ题号标题标签难度最后更新解析
RainboyOJ1408
从 11 到 n 枚举每个整数,先判回文再判素数,统计两条件都满足的个数。
质数判定枚举回文数
入门2026-10-05 23:11
RainboyOJ1409
埃氏筛预处理 1~10^5 的素数表,再对闭区间直接求和统计素数个数。
素数判断埃氏筛
普及2026-10-05 23:10
RainboyOJ1410
对区间每个数从小到大试除,除尽当前因子后剩下的商就是最大质因子,单次 O(√n)。
数论质因数分解
入门2026-10-05 23:10
RainboyOJ1407
统计单词中每个字母出现次数,判断出现最多次数与最少次数之差是否为质数。
质数判定字符串统计
入门2026-10-05 23:10
RainboyOJ1404
枚举总家数 m,按 32 位 int 溢出语义模拟 std.cpp 的 i*i+i-2n 判定,使 x=(m(m+1)/2-n)/3 落在 [1,m] 时输出。
数论枚举数学python
入门2026-10-05 23:03
RainboyOJ1405
埃氏筛预处理质数表后,从 S/2 向下枚举较小质数 p,第一个满足 p 与 S-p 均为质数的 p 直接给出最大乘积 p*(S-p)。
数论素数筛枚举python
入门2026-10-05 23:03
RainboyOJ1406
按空格把字符串拆成单词,逐词判断是否与目标单词完全相同并替换,最后用空格拼接输出。
stringsimulation
入门2026-10-05 23:02
RainboyOJ1403
通过埃氏筛预处理素数表,并枚举奇数快速筛选输出不超过 n 的所有孪生素数对。
数学素数筛法
入门2026-10-05 23:02
RainboyOJ1401
FIFO 缓存模拟:按顺序处理单词,命中直接翻译,未命中查词典一次并淘汰最早进入的单词。
模拟队列python
普及-2026-10-05 12:53
RainboyOJ1399
一次线性扫描,按'体温 ≥ 37.5 且咳嗽'过滤姓名,重点是把一行三种类型的 token 分别读对。
模拟python
入门2026-10-05 12:53
RainboyOJ1400
扫描文章中的独立单词,忽略大小写与给定单词比较,统计出现次数并记录首次真实下标。
字符串模拟python
入门2026-10-05 12:53
RainboyOJ1398
每条短信限 70 字,每次发送占 ceil(字数/70) 条,把总条数整数累加后除以 10 换成元,保留一位小数输出。
入门数学python
入门2026-10-05 12:44
RainboyOJ1394
边权只有 0/1/2 的网格最小生成树,按权值分三阶段用并查集做 Kruskal 贪心合并。
图论最小生成树并查集贪心
普及2026-10-05 12:44
RainboyOJ1397
整行恰好一个运算符,逐字符扫描定位后切成三段,按运算符做对应整数运算。
模拟字符串
入门2026-10-05 12:44
RainboyOJ1380
糖果在无权图上每秒传一格,从 C 出发 BFS 求出到每个小朋友的最短时间,答案 = max(dist) + m + 1。
图论bfs最短路python
普及-2026-10-05 12:30
RainboyOJ1381
无向带重边图上跑堆优化 Dijkstra,边权非负时第一次弹出 n 即最短路,不可达输出 -1。
最短路Dijkstra堆图论python
普及-2026-10-05 12:30
RainboyOJ1376
消息并行传播等价于单源最短路:哨所 v 收到命令的时刻就是 1 到 v 的最短路长,边权为正跑 Dijkstra,答案是所有 dist 的最大值,不连通输出 -1。
最短路Dijkstra图论
普及-2026-10-05 12:23
RainboyOJ1372
用 multiset 维护未付账单,每天插入新账单后输出并删除最小和最大面额各一张。
模拟优先队列堆懒删除python
普及-2026-10-05 12:23
RainboyOJ1371
用大根堆维护排队患者,C++ priority_queue 直接 push / top / pop,每次操作 O(log n),共 O(n log n)。
堆优先队列python
普及-2026-10-05 12:23
RainboyOJ1368
顺序存储中位置 k 的左右孩子在 2k+1 与 2k+2,每对相邻位置就是一对兄弟,逐对判断是否同空或同非空即可 O(n) 判定。
二叉树顺序存储模拟
入门2026-10-05 12:14
RainboyOJ1370
n 个系数全正的二次函数在正整数点上严格递增,每个函数只暴露当前最小候选 F_i(x),用小根堆做 n 路归并,弹 m 次堆顶即为前 m 小函数值。
堆多路归并python
普及-2026-10-05 12:14
RainboyOJ1363
满二叉树小球下落:第 j 个到达某节点的球奇数次走左、偶数次走右,只需跟踪第 I 个球在该子树的序号并逐层折半,O(D) 时间定位叶子编号。
二叉树模拟位运算递推python
普及-2026-10-05 12:07
RainboyOJ1361
把变换规则建成数字 0~9 的有向图,每位独立求传递闭包大小,由乘法原理把各位闭包大小相乘即答案,避免枚举所有整数。
图论传递闭包乘法原理python
普及-2026-10-05 12:00
RainboyOJ1362
把每个关系看作无向边,用并查集合并家庭成员,最后按代表元统计家庭数与最大家庭规模。
并查集连通分量
入门2026-10-05 12:00
RainboyOJ1355
栈同时判定配对与嵌套优先级:四类括号按「越靠内优先级越高」编码为 { [ ( <,右括号取同类编码 +4,左括号入栈只与栈顶比一次。
字符串栈
入门2026-10-05 11:55
RainboyOJ1357
车站 C 是栈,目标是 1..n 的栈混洗:对每个出站车厢把更小编号的未出站车厢全部入栈,检查栈顶恰好匹配,单遍贪心模拟 O(n) 判定。
栈模拟贪心
入门2026-10-05 11:52
RainboyOJ1354
用一个栈存尚未闭合的左括号:右括号只能配栈顶的同类左括号,扫描结束后栈空才输出 OK,否则 Wrong
字符串栈
入门2026-10-05 11:24
RainboyOJ1350
完全图邻接矩阵求最小生成树:Prim 数组版每轮选距离树最近的点入树并用其所在行松弛,O(n²) 与读入同阶。
最小生成树图论贪心python
普及-2026-10-05 11:23
RainboyOJ1351
把父亲→儿子的辈分关系建为 DAG 的有向边,用 Kahn 拓扑排序输出一个合法辈分序列。
拓扑排序图论DAG
入门2026-10-05 11:23
RainboyOJ1349
把费用矩阵看成完全带权图,问题即求最小生成树;用朴素 Prim 每轮接入 dist 最小的点,并用它那一行松弛其余未接入点,时间 O(n^2)。
图论最小生成树Prim贪心python
普及-2026-10-05 11:15
RainboyOJ1341
用边编号 + 链式邻接表实现迭代版 Hierholzer 求欧拉路,出栈序列逆序输出。
-普及2026-10-05 11:08
RainboyOJ1345
枚举糖所在牧场,每个候选跑一次堆优化 Dijkstra,再按各牧场牛数加权求和取最小值;稀疏图 O(P(C+P)logP),比 Floyd 的 O(P^3) 低一个数量级。
图论最短路Dijkstra堆优化python
普及-2026-10-05 10:46
RainboyOJ1344
把手续费 z% 的边换算成放大因子 100/(100-z),A 到 B 的最小放大倍数路径就是放大 Dijkstra 的求和最优,答案再乘 100 并保留 8 位小数。
图论最短路Dijkstra堆python
普及-2026-10-05 10:46
RainboyOJ1339
先序首字符定根、中序里根的位置同时切分两串,递归按"左 + 右 + 根"拼出后序。
二叉树递归分治树的遍历python
普及-2026-10-05 10:39
RainboyOJ1338
把父子链接当作无向边,Floyd 求全源最短路,再枚举医院位置取人口加权距离和的最小值。
图论最短路Floyd二叉树Python
入门2026-10-05 10:38
RainboyOJ1340
顺序消费扩展先序序列递归还原二叉树,再做一次中序、一次后序遍历输出。
二叉树递归遍历
入门2026-10-05 10:38
RainboyOJ1336
每条边只解析一次:parent[y]=x 定根,children[x] 记孩子;编号递增扫描 + 严格大于实现并列取小编号,O(n+m)。
入门树图论python
入门2026-10-05 10:12
RainboyOJ1334
用队列模拟约瑟夫环:未数到 m 的人移到队尾,数到 m 的人出列输出。
模拟队列约瑟夫问题
入门2026-10-05 10:11
RainboyOJ1335
网格四连通 flood fill 计数黑格连通块:每遇未访问黑格开块、栈式淹没;数据行被拼成整型 token,读入需复刻评测程序的 int32 溢出语义。
网格连通块flood-fill搜索python
入门2026-10-05 10:10
RainboyOJ1331
逐字符扫描后缀表达式,数字拼装入栈,运算符弹出右和左两个数把结果压回。
栈表达式求值字符串python
入门2026-10-05 10:01
RainboyOJ1332
出队者立刻回到队尾,队伍只是整体轮转,因此第 i 支舞曲两队的出场编号就是 ((i-1) mod m)+1 与 ((i-1) mod n)+1,循环 k 次输出即可。
模拟队列周期python
入门2026-10-05 10:01
RainboyOJ1329
网格连通块计数入门题:按行扫描遇到未抹掉的非 0 数字就数一个新细胞,BFS 把整个四连通块原地抹成 0 当访问标记,每格至多入队一次。
搜索BFS连通块
入门2026-10-05 10:01
RainboyOJ1327
用数组模拟空位推进,按固定递归模式把黑白相间排列到目标局面。
模拟递归构造
入门2026-10-05 09:53
RainboyOJ1325
选手与天数都从 0 编号后,对手就是 i xor j + 1:异或的双射性保证每列是排列,分块递推 (P, P+n; P+n, P) 与之等价,另需对齐官方数据 problem10 的空输出。
构造位运算分治递推数学python
普及2026-10-05 09:49
RainboyOJ1326
用快速幂求 b^p mod k:把 p 拆成二进制,位为 1 时乘入答案,每轮底数平方取模。
数学快速幂python
入门2026-10-05 09:49
RainboyOJ1323
按结束时间升序贪心选相容区间,求最大活动数。
贪心区间调度排序
入门2026-10-05 09:42
RainboyOJ1324
把区间按右端点升序排序,逐个检查是否被已选点覆盖;未被覆盖就取它的右端点,一次扫描得到最少点数。
贪心区间贪心排序区间python
普及-2026-10-05 09:41
RainboyOJ1322
最少非升子序列划分数等于最长严格上升子序列长度,用 tails 数组二分维护 LIS 即可。
动态规划LISDilworth定理贪心
入门2026-10-05 09:41
RainboyOJ1321
删除顺序等价于每次删第一个下降位;用单调不减栈一次扫描,弹出次数正好等于删除名额,剩余名额删末尾,时间 O(L)。
字符串贪心单调栈python
普及2026-10-05 09:41
RainboyOJ1318
用 DFS 按非递减顺序拆分 n,自然去重并按字典序输出所有方案。
DFS搜索整数拆分
入门2026-10-05 09:19
RainboyOJ1320
把每堆纸牌数减去平均值得到偏差,再求偏差的前缀和;每一条前缀和非零的相邻边界至少要搬一次,且各搬一次即可做到,答案就是非零前缀和的个数。
贪心前缀和
普及-2026-10-05 09:18
RainboyOJ1319
接水时间短的人排前面即最优:交换论证排除相邻逆序对,按时间升序排序后总等待为 Σ(n-1-pos)·t,除以 n 输出两位小数。
入门贪心排序python
入门2026-10-05 09:18
RainboyOJ1317
组合看成严格递增序列,递归逐位选数:递增性天然保证不重不漏,层内从小到大枚举即得字典序。
递归枚举python
入门2026-10-05 09:17
RainboyOJ1313
只跟踪前缀中数字 3 个数的奇偶,推出 答案 = (9*10^(N-1) + 7*8^(N-1))/2,在模 24690 下快速幂求分子再整除 2。
数学计数递推python
普及-2026-10-05 09:13
RainboyOJ1316
设 f(i) 为 i 能生成的数的个数,由 f(i)=1+Σf(x) 差分得 f(i)=f(i-1)+[i 偶]·f(i/2),顺序递推求 f(n)。
递推动态规划计数python
普及-2026-10-05 09:11
RainboyOJ1309
模拟 N 进制回文数生成:数码数组逐位做 a + reverse(a) 并处理进位,至多 30 步判回文;必须按数码面值直接模拟,不能转整数(数据里有数码 ≥ N 的输入)。
入门高精度模拟python
入门2026-10-05 09:01
RainboyOJ1312
按月的双序列线性递推:b[i]=y·a[i-x] 记每月产卵、a[i]=a[i-1]+b[i-2] 记两月后孵化,初值 a[1..x+2]=1,O(z) 求第 z+1 个月的成虫对数。
递推动态规划python
入门2026-10-05 08:58
RainboyOJ1311
把两两比较改写成逐个右端点统计「左边比它大的个数」,用树状数组做前缀和查询与单点加,O(n log n) 求出逆序对总数。
树状数组离散化逆序对python
普及-2026-10-05 08:58
RainboyOJ1308
高精度除以高精度:手写十进制竖式长除法,逐位拉下被除数、反复减去除数试商,O((n-m+1)m) 求得商与余数。
高精度大整数数学
入门2026-10-05 08:50
RainboyOJ1304
把 n 拆成 k 个正整数且不计顺序,按「最小值是否为 1」分类得到 p_k(n)=p_{k-1}(n-1)+p_k(n-k),递推 O(nk) 求解。
递推数学记忆化搜索python
普及-2026-10-05 08:50