在各大$\text{OJ}$的题库中,找到一些好题无疑像在星辰大海中捞针一样艰难。

因此,作者制作了这份动态题库。方便各位$\text{OIer}$们日常刷题,同时也是自己成长的一份记录

对于每一个不同的知识点,作者会上传一些题目供大家练习,题目基本按照难度排序

这些题目中,大部分是作者做过的题目,也有一部分来自于$\text{LYOI}$和外地$\text{OIer}$的原创题,均已特殊标明。在这里,作者对他们致以崇高的敬意与衷心的感谢。

为避免使用者需要注册过多账号,题目评测依赖于$\text{Luogu}$。

当然,由于作者水平有限,所给出的题目难免会出现不太合适或有误的情况,若出现这种情况,请您在评论区进行评论或者在关于界面联系作者。

如果您想贡献自己的题目的话,也请在关于界面联系作者,感谢您对本站做出的贡献。


Part 0 试机题

三道试机题目,没什么好说的。

Part 1 语言阶段

本部分是给语言入门的$\text{OIer}$们准备的基础内容,比较简单。

Part 1.1 从零开始的OI生涯

最基础的题目,大概是唐$\text{Sir}$课件的前三章的难度,加油冲过去吧!


Part 1.2 数组基础

数组可以存储大量信息,但别开太大哦。


Part 1.3 字符串基础

字符串其实就是一种特殊的数组,但它也有很多自身特点


Part 1.4 函数&递推&递归

这里算是初学者最难理解的部分,加油闯过去吧!


Part 2 算法部分

这里集结了大量基础算法题目,不需要太多的前置知识,适合巩固基础 & 挑战思维。

当然,里面也有一些难度较高的题目,作者会*·标出,可以在到达一定水平之后回头做。

Part 2.1 模拟

模拟,顾名思义,就是说什么就做什么。

其中,题目TarjanLusa为$\text{Herself32}$贡献,在此作者表示深深的感谢


Part 2.2 排序

通过排序,我们可以让一个序列变的有序,更加方便我们操作。

其中,题目Grades为$\text{Liuzhe}$贡献,在此作者表示深深的谢意。


Part 2.3 贪心

事实证明,在生活中贪心不是个好习惯,但在OI中,贪心有时却真的是对的。


Part 2.4 搜索

高级枚举 & 骗分神器

DFS

深度优先搜索(即DFS)是按照深度优先进行搜索,一般采用递归和栈来实现。

当然了,大部分时候DFS也是考场骗分神器


BFS

广度优先搜索(即BFS)是按照广度优先进行搜索,一般采用队列实现。

更适合处理图上的有关问题


折半搜索

在搜索一段有序的数列时,我们可以将数列一分为二,分别搜索后利用排列组合求出最后的答案。


记忆化搜索

在搜索时记录上一个搜索的状态以节省时间,是一种比较常用的优化手法。

同时,记忆化搜索也是动态规划的一种实现方式。


A-star

在$\text{BFS}$的基础上设计一个合理的估价函数,就成了$\text{A-star}$算法。


搜索的剪枝

没有剪枝的搜索就像没有跳刀的斧王,无法发挥出其应有的威力


Part 2.5 二分

可以把一些很困难的计算问题变成判定性问题,前提是必须有序


Part 2.6 分治

分治分治,分而治之。

即把一些看起来十分巨大的问题分解为一个个小问题依次求解,最后合成答案。


Part 3 动态规划

动态规划(简称$\text{dp}$)通过利用已知状态获取最优解,是$\text{OI}$中最为重要的算法之一。

其使用需要满足最优子结构无后效性原则,并且注意边界条件的处理

Part 3.1 线性dp

一般设$F_{i , s}$表示区间$[1 , i]$在限制条件为$s$情况下的最优解。


Part 3.2 背包问题

背包是一类重要的$\text{dp}$模型,包含$0/1$背包,完全背包,多重背包等多种不同形式。近几年的$\text{NOIP / CSP}$考过多次

需要熟练掌握其各种变形与套路


Part 3.2 背包问题


评论
va
avatar
Album.
起风了,唯有努力生存
Go To My Github
公告
成为很厉害很厉害的人,最重要的,就是要热血。永远不要让你的血凉下去。