这个暑假并没有愉快的回家,吹着空调吃着西瓜,抱着电脑打着游戏,而是选择了留在学校,继续我的ACM学习之旅!!!
训练了11天,感觉自己还是有很多没有学习的透彻,只是简单的了解啦一下,做了几道入门题(比如说:树状数组和线段树)
上题吧!!
树状数组入门1
https://www.luogu.org/problemnew/show/P3374
树状数组的表示形式
这是一道简单的入门题,题意大概是:对一个数列有两种操作
1.将某一个数加上x
2.求某区间的和
利用树状数组的三个基本函数
①
②添加某个数
③求前几项的和
代码:
AC了
接下来说个线段树的案例
线段树1
https://www.luogu.org/problemnew/show/P3372
题意为:
已知一个数列,你需要进行下面两种操作:
1.将某区间每一个数加上x
2.求出某区间的和
线段树操作有三步
构建线段树
add增加区间里的每一个数
求区间数的和
AC了
学习了一些图论的基本知识:用数组来存图,用邻接表来存图和用链式前向星的方法存图。
来看一下如何用矩阵来存图:
2.利用邻接表来存储图
使用邻接表来存图可以有效的解决点数过多的问题。对于图中任意一个顶点来说,邻接表将以该点为起点的所有的边以链表的形式连接起来,“挂”在顶点下面,可以有效的节省空间。
图中带圈的数字代表边的序号。
邻接表的实现又可以分为用vector实现与用链式前向星实现
利用vector建立临接表实现图的存储
链式前向星存储无向图
跟着学长一起打比赛,一起听直播讲题,确实是件很享受的事情,特别是听大佬讲题,更是觉得自己就是个菜鸡,若到爆了。
最近一直在补提,上回博客分享的是2019河北省省赛的题,之后还会给大家分享一些有价值的题。
未来可期,充分利用时间==MAX(value(人生无限的财富))