回首2023,在这一年我真是取得了不少成就:从2021年加入CSDN以来,作为一名OIer初中生,我在CSDN得到了许多帮助,每一次的疑问都会有大犇第一时间帮我解答,也正是因为CSDN中有许多优质文章,才能帮助我在OI路上更加easy
我的年度报告:
1.我在洛谷上通过的题目:
共296道题。
2.我学习的算法:
1.并查集
并查集被很多OIer认为是最简洁而优雅的数据结构之一,主要用于解决一些元素分组的问题。它管理一系列不相交的集合,并支持两种操作:
合并(Union):把两个不相交的集合合并为一个集合。
查询(Find):查询两个元素是否在同一个集合中。
当然,这样的定义未免太过学术化,看完后恐怕不太能理解它具体有什么用。所以我们先来看看并查集最直接的一个应用场景:亲戚问题。
(洛谷P1551)亲戚
题目背景
若某个家族人员过于庞大,要判断两个是否是亲戚,确实还很不容易,现在给出某个亲戚关系图,求任意给出的两个人是否具有亲戚关系。
题目描述
规定:x和y是亲戚,y和z是亲戚,那么x和z也是亲戚。如果x,y是亲戚,那么x的亲戚都是y的亲戚,y的亲戚也都是x的亲戚。
输入格式
第一行:三个整数n,m,p,(n<=5000,m<=5000,p<=5000),分别表示有n个人,m个亲戚关系,询问p对亲戚关系。
以下m行:每行两个数Mi,Mj,1<=Mi,Mj<=N,表示Mi和Mj具有亲戚关系。
接下来p行:每行两个数Pi,Pj,询问Pi和Pj是否具有亲戚关系。
输出格式
P行,每行一个’Yes’或’No’。表示第i个询问的答案为“具有”或“不具有”亲戚关系。
这其实是一个很有现实意义的问题。我们可以建立模型,把所有人划分到若干个不相交的集合中,每个集合里的人彼此是亲戚。为了判断两个人是否为亲戚,只需看它们是否属于同一个集合即可。因此,这里就可以考虑用并查集进行维护了。
2.线段树
线段树,是一种 二叉搜索树 。它将一段区间划分为若干 单位区间 ,每一个节点都储存着一个区间。它 功能强大 ,支持区间求和,区间最大值,区间修改,单点修改等操作。
线段树的思想和分治思想很相像。
线段树的每一个节点都储存着一段区间 [ L . . R ] [L..R][L..R] 的信息,其中 叶子节点 L = R L=RL=R 。它的大致思想是:将一段大区间平均地划分成 2 22 个小区间,每一个小区间都再平均分成 2 22 个更小区间……以此类推,直到每一个区间的 L LL 等于 R RR (这样这个区间仅包含一个节点的信息,无法被划分)。通过对这些区间进行修改、查询,来实现对大区间的修改、查询
3.动态规划
3.我敲下的代码量:
今年我一共敲下了 126.83kB 代码,我相信,有83%的代码都是在CSDN的帮助下 才够实现。
结束语
回首一年来的工作,我在思维上、进修上、工作上取得了新的前进,但我也熟悉到自己的不足之处,理论常识水平还斗劲低,算法技术还不强。此后,我必然战胜错误,发扬成就,做一名合格的CSDN成员。
在接下来新的一年里,工作中必然免不了有些挫折和缺陷,但我会尽力做好每一件事情,不断完善自己。如果粉丝们对我的博客有什么不满意的地方,也希望粉丝们帮我指正,让我们一起把工作做到最好,让我们每个人都拥有一个健康的心灵!!
P.S.本人初中生,写作能力有限,可能赶不上那些企业员工的2023总结,但是,在CSDN的帮助下,我的确得到了许多帮助。在CSDN平台上,帮助了许多像我一样的初中OIer,我谨代表初中OIer向CSDN表示感谢!!
请大家帮忙投票呀!