题目列表

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

共 1485 题
OJ题号标题标签难度最后更新解析
RainboyOJ3126
分块预处理每个完整块对中正偶数种类数,询问时对两侧散段的互异值用「(值,位置) 排序键二分」算出总次数做二次补偿,强制在线下 O((n+m)√n)。
分块python
提高+/省选-2026-10-10 11:30
RainboyOJ3118
点分治:每层在重心处 DFS 收集各点到重心的距离,用排序加二分统计距离和不超过 K 的点对,再减去同一子树内部的点对完成容斥,总复杂度 O(N log^2 N)。
点分治树二分
提高+/省选-2026-10-10 11:30
RainboyOJ3119
离线收集所有数值做坐标压缩,用树状数组维护计数数组,把六个操作全部归约成单点加、前缀和与树上二进制提升求第 k 小,总复杂度 O(n log n)。
数据结构平衡树树状数组坐标压缩有序多重集python
提高2026-10-10 11:30
RainboyOJ3121
把区间 [l,r] 的第 k 小看成两棵前缀权值线段树的计数相减,用可持久化线段树(主席树)在 O((n+m)log n) 内回答每个询问。
主席树可持久化线段树离散化数据结构
提高+/省选-2026-10-10 11:30
RainboyOJ3122
把罪犯拆成两个'域',用扩展域并查集维护'分居两狱'的约束;怨气值降序处理仇恨边,第一条无法分居的边其怨气值就是答案。
并查集扩展域二分图判定贪心
提高2026-10-10 11:30
RainboyOJ3116
静态区间众数强制在线:按 sqrt(n) 分块预处理「整块区间众数」表 + 每个值的有序出现位置,询问只枚举两端残缺块的值 O(sqrt(n) log n)。
python分块二分区间众数
提高+/省选-2026-10-10 11:30
RainboyOJ3117
把同色概率写成 ΣC(cnt,2)/C(len,2),利用增量的可维护性离线排序询问,用莫队算法 O((N+M)√N) 完成静态区间统计。
分块莫队
提高+/省选-2026-10-10 11:30
RainboyOJ3115
每颗星拆成 +c/-c 两个 x 方向事件按竖线扫描,y 方向降成「窗底区间 [y-H+1, y] 带权覆盖最大值」,用区间加+懒标记线段树维护全局最大覆盖,O(n log n)。
python扫描线线段树离散化
提高+/省选-2026-10-10 11:30
RainboyOJ3112
把区间答案补成 (sum, pre, suf, best) 四元组,用线段树在 O(log N) 内完成单点修改与区间最大连续子段和查询。
线段树python
普及+/提高-2026-10-10 11:30
RainboyOJ3113
利用 gcd(x,y)=gcd(x,y−x) 把区间 gcd 转到差分序列上:区间加塌缩成两个单点改,用树状数组求 A_l 的前缀和、线段树维护差分的区间 gcd,合并得答案。
线段树树状数组差分gcdpython
提高+/省选-2026-10-10 11:30
RainboyOJ3114
把矩形拆成竖边按 x 扫描,用线段树维护 y 轴上被覆盖的总长度(cover_cnt 不下传、cover_len 自底向上拼接),每条竖边 O(log n) 累加面积,总复杂度 O(n log n)。
python扫描线线段树离散化计算几何
提高+/省选-2026-10-10 11:30
RainboyOJ3109
固定中间点把图腾拆成左右独立的大小计数,用权值树状数组正序扫描得到每个位置左侧更小的个数,反转序列复用同一函数得到右侧计数,O(n log n)。
树状数组前缀和逆序对python
提高2026-10-10 11:30
RainboyOJ3110
区间加在差分数组上只改两个位置;再展开一层前缀和得 S(x)=(x+1)Σd_j-Σj·d_j,用两棵树状数组分别维护 d_j 与 j·d_j,区间加与区间求和都是 O(log N)。
树状数组差分前缀和python
提高2026-10-10 11:30
RainboyOJ3111
从后往前逐位确定身高:第 i 头牛的身高是剩余空闲身高中第 A_i+1 小的,用树状数组维护 0/1 空闲标记并在其上倍增找第 k 小。
树状数组二分python
普及+/提高-2026-10-10 11:30
RainboyOJ3108
把 A/B/C 环形食物链编码为模 3 关系值,用带权并查集维护每个动物到根的关系,逐句 O(α) 判定真假。
并查集食物链python
提高2026-10-10 11:30
RainboyOJ3662
将复杂条件的路径字典序要求转化为局部状态的制约,通过打表或者递推找出 O(log m) 的通项公式。
数学动态规划计数
提高+/省选-2026-10-10 09:49
RainboyOJ3641
使用三个队列维护单调性,分别存储初始蚯蚓、切出的左半段和右半段,实现 $O(m)$ 的切分模拟。
队列贪心模拟
提高+/省选-2026-10-10 09:28
RainboyOJ3678
纯模拟题,按题目规则模拟结构体类型的定义、元素的内存分配与访问查找。
模拟
提高2026-10-10 09:26
RainboyOJ3650
通过正反两次 Dijkstra 求出到起点和终点的最短路,结合 DFS 记忆化搜索统计额外代价不超过 K 的合法路径,利用栈来判断产生无穷方案的零环。
图论最短路动态规划记忆化搜索
提高+/省选-2026-10-10 09:25
RainboyOJ3622
通过深度优先搜索枚举每一步的方块移动,结合模拟消除过程并使用多种剪枝策略来寻找答案。
搜索模拟剪枝
提高+/省选-2026-10-10 09:23
RainboyOJ3077
将N进制加法谜题转化为N个字母到0~N-1的排列问题,采用带强力可行性剪枝的DFS求解。
搜索深度优先搜索剪枝
提高2026-10-10 09:21
RainboyOJ3079
通过迭代加深搜索(IDA*)寻找能完全覆盖给定时刻序列的最少巴士路线,并指出题面与实际测试数据的严重不符。
搜索深度优先搜索迭代加深搜索剪枝
提高+/省选-2026-10-10 09:20
RainboyOJ3640
通过 Floyd 预处理任意两教室间的最短路,并使用动态规划求出在至多更换 $m$ 节课程限制下,移动消耗体力的期望最小值。
动态规划概率期望最短路
提高+/省选-2026-10-10 09:20
RainboyOJ10019
预处理全排列合法5张牌组合,按牌力排序建立3张牌到合法方案索引,询问时二分找恰好能胜的最弱组合。
模拟二分
提高+/省选-2026-10-10 07:13
RainboyOJ10016
通过动态规划与精妙的贪心推导,推断出只需修改候选山谷点自身的局部最优性,利用 O(NK) DP 求解。
动态规划贪心
提高2026-10-10 07:12
RainboyOJ10018
将序列安排问题转化为树形对抗过程中的最长上升子序列 DP,通过预处理合法 LIS 状态进行状态压缩转移。
DP状态压缩树形结构
提高+/省选-2026-10-10 07:12
RainboyOJ10015
多源 BFS 寻找距离在区间内的点集,随后利用换根 DP 计算树上节点到多个点集距离和与平方和问题。
树形 DP换根 DPBFS
提高+/省选-2026-10-10 07:11
RainboyOJ10017
通过位移算子将差分与相邻求和转化为多项式乘法,利用 (1+x) 和 (1-x) 的组合找出规律,从而做到 $O(n)$ 的线性求解。
组合数学数学
提高+/省选-2026-10-10 07:11
RainboyOJ10013
使用容斥原理将多边形的几何滚动转化为在直线上统计公倍数节点的问题,极简且高效。
数学数论容斥原理
提高2026-10-10 01:42
RainboyOJ10012
计算给定时间经过3小时30分后的时间,注意24小时制和跨日取模,需考虑特殊的冒号输入。
模拟字符串
入门2026-10-10 01:40
RainboyOJ10005
通过分析游戏无限进行的稳态条件,转化为降序排序后寻找最大满足 a[i] >= i 的人数。
贪心排序思维
普及+/提高-2026-10-09 23:32
RainboyOJ10014
求有向无环图上的最大权路径,并在剔除该路径后,求其前驱或后继子图中的最大权路径。
动态规划拓扑排序DAG
提高+/省选-2026-10-09 23:30
RainboyOJ3194
将区间覆盖要求转化为前缀和的不等式,利用差分约束系统求最长路得到最小元素数。包含首行格式自适应解析处理。
图论最短路贪心
提高2026-10-09 23:25
RainboyOJ8010
使用双指针判断字符串 q 是否为 s1 的子序列。
字符串双指针
普及-2026-10-09 22:24
RainboyOJ20028
Tarjan 求强连通分量缩点,在 DAG 上进行可达性 DP 和位掩码求交。
强连通分量拓扑排序动态规划状态压缩
提高+/省选-2026-10-09 21:46
RainboyOJ20029
通过二分答案,将判定边长为 L 的正方形退化为二维平面的禁放矩形覆盖问题,用离散化与二维差分实现 O(T^2) 高效判定。
二分答案二维差分离散化
提高2026-10-09 21:46
RainboyOJ3123
使用扩展域并查集提取居民关系连通块,再以计数型背包 DP 统计满足天神人数的方案数,并根据方案是否唯一决定输出。
并查集背包图论计数
提高+/省选-2026-10-09 21:45
RainboyOJ20030
通过 Lucas 定理将二维组合数递推转换为按位与条件,再利用高低位分块优化枚举,实现 $O((n+q)2^8)$ 复杂度。
Lucas 定理高低位分块子集枚举
省选/NOI-2026-10-09 21:43
RainboyOJ3547
题面为「递推数列平方和取模」,但数据是「n + n 个整数」的数组形态,输出为小整数;穷举 60+ 候选统计量均无 10/10,判定题面与数据错位、无法反解。
数据不一致
未知2026-10-09 20:30
RainboyOJ3065
通过迭代加深搜索(IDDFS)结合剪枝寻找加成序列的最短步数。题面与数据输出格式严重不符且多解,需特别注意。
DFSIDDFS迭代加深
提高+/省选-2026-10-09 19:14
RainboyOJ8008
题面要求「保留查询串字符后比较两子串」,但真实数据为纯整数的数对映射,题面与数据完全错位,无法反解真实考点。
数据不一致
未知2026-10-09 18:40
RainboyOJ3519
通过搜索与剪枝枚举点集的划分或矩形的切分,寻找最多四个严格分离的矩形以最小化总包围面积。
搜索剪枝
提高+/省选-2026-10-09 17:07
RainboyOJ3218
将补图转化为二分图,并利用背包 DP 分配连通块以最小化两队的规模差。
二分图背包DP图论
提高+/省选-2026-10-09 14:29
RainboyOJ3190
将树上路径拆为上行和下行两段,利用事件表和树上差分通过后序遍历全局桶统计经过次数。
树上差分最近公共祖先桶
提高+/省选-2026-10-09 14:07
RainboyOJ3212
求平面完全图最小生成树中权值第 P-S 小的边,即将图划分为 S 个连通块时的最大边权。
最小生成树Kruskal
提高2026-10-09 13:56
RainboyOJ3120
使用 CDQ 分治结合树状数组,利用坐标轴翻转将四个方向的曼哈顿距离转化为同一个方向求解,处理动态的三维偏序问题。
CDQ分治树状数组曼哈顿距离
提高+/省选-2026-10-09 13:30
RainboyOJ3166
通过动态规划求出两个字符串的最长公共子序列长度,利用预处理的字符跳转表进行 DFS 回溯,求出所有不重复的最长公共子序列。
DPLCS深度优先搜索
提高+/省选-2026-10-09 13:05
RainboyOJ3066
给定 N 个物品和背包容量 W,求力气范围内能搬动的最大重量,利用折半搜索降低时间复杂度,并用去重控制状态空间。
折半搜索二分查找DFS
提高+/省选-2026-10-09 12:46
RainboyOJ3064
本题要求求解 16×16 数独,数据包含多组测试用例,采用 DLX(精确覆盖)算法可有效避免回溯搜索带来的超时问题。
DLX精确覆盖搜索回溯
提高+/省选-2026-10-09 11:56
RainboyOJ3165
题面与数据严重背离,实际评测数据为 POJ 2828 Buy Tickets (插队问题),需使用离线倒序加树状数组二分求解。
树状数组二分离线处理
提高2026-10-09 11:52
RainboyOJ3133
通过主席树维护按秩合并的并查集,完全放弃路径压缩以防止空间爆炸,解决强制在线的可持久化维护问题。
线段树并查集数据结构主席树
提高+/省选-2026-10-09 11:38
RainboyOJ1452
求在虚拟键盘上打印目标字符串的最少按键次数,核心在于预处理跳跃并使用 BFS 结合 max_k 高效剪枝,且注意避免空间超限。
BFS最短路
提高+/省选-2026-10-09 09:43
RainboyOJ1519
将党派代表二选一建模为2-SAT问题,使用迭代版Tarjan求强连通分量,按逆拓扑序输出升序代表编号。
2-SAT图论强连通分量
提高+/省选-2026-10-09 09:01
RainboyOJ1565
使用平衡树(如 std::set)维护已出现的营业额,对于每天的营业额查询前驱和后继求最小差值,结合 Python 的 bisect 也可快速实现。
平衡树贪心
提高2026-10-09 08:56
RainboyOJ1425
经典的双机流水作业调度问题,利用 Johnson 规则对任务进行分组和排序求解,本题存在多种最优排列,需依赖 SPJ 判题。
贪心排序流水作业调度
普及+/提高-2026-10-09 08:30
RainboyOJ5073
通过三个不同的平均分反解总分、最高分和最低分,最后求剩余分数的平均值。利用通式推导即可得到答案。
数学
入门2026-10-09 08:19
RainboyOJ5074
直接应用海伦公式计算三角形面积,注意使用双精度浮点数(double)防止精度溢出或丢失,并加入容错防御。
数学几何海伦公式
入门2026-10-09 07:40
RainboyOJ5072
计算加权平均分并格式化输出保留 4 位小数,通过严谨分析规避浮点平局点残差与未定义行为。
模拟数学
入门2026-10-09 07:37
RainboyOJ5071
分离三位数的百位、十位和个位,重新组合并以整数形式输出,利用自动去前导零的特性应对边界数据。
基础算法数学
入门2026-10-09 07:35
RainboyOJ5070
本题要求模拟按固定顺序在环状数组上进行除法和加法更新操作。难点在于理解连续实时更新以及正确处理固定宽度且无额外分隔符的拼接输出格式。
模拟
入门2026-10-09 07:34