2017年9月1日-2017年9月3日训练总结

来源:互联网 发布:弯刀对着瓢切菜 知乎 编辑:程序博客网 时间:2024/04/30 10:03

        在忙碌的生活和繁重的功课中,开始了线段树的学习。。。

线段树的空间复杂度是4*n,时间复杂度是log2n,和树状数组一样可以解决三类问题(单点更新,区间查询,区间更新单点查询,区间更新区间查询),但它是一颗二叉树。树上每一个节点都是一个结构体,里面包括区间左右端点和最大值、总和等信息。也可以用两个数组,一个存原数组的信息,另一个求和。求父节点和子节点可以利用位运算(i<<1,i<<1|1,i>>1)比较省时间。主要是树的建立、更新和查询的函数,具体看题目要求求什么。课件中讲了四种例题(单点更新、区间更新、区间合并和扫描线)。但是我只看完了前两种,也只是理解他的思路、能看懂代码而已,熟悉这两种简单的题型。由于只看了课件和部分例题,对于稍微难一点的题目,还不能完全独立的写出代码。

        今天抽出一上午的时间仔细琢磨了一下课件,先把最简单的弄懂了,并做了三道题(一道单点更新,两道区间更新)因为都是课件中的例题,看懂了之后就自己敲了一遍代码,比较欣慰的是都是1A。这三道应该是最最基础的题了,但是应该还有其他非常简单的题目,下一周努力抽出时间最起码把简单的题目全都搞懂并都做出来。不过现在的主要目的还是看资料,看例题,理解代码明白核心思想,最起码非常简单、典型的题就别再A不出来了。至于一些稍微难的题目,也努力尝试吧。。。

        现在有点想念在机房的一个月了,有空调有队友,不会随时可以交流,每天都能专心做题看资料,开学之后各种事还有作业都让每一天都充满忙碌,很少能有时间一起、专心的看资料A题了。不过则并不代表我就可以松懈,就不用学习ACM的相关知识,相反,这对我来说是一个很好的挑战,它将会让我的每一天的生活都非常充实。既然选择了,那就努力做下去,努力做好,让未来的自己无悔自己大学的每一分付出,让自己的青春无悔。今天早上8点就去了机房,本以为没人,但是一个学长却已经早早来到了那里,手速飞快地敲着代码,时不时静下来思考,一旦有思路了,瞬间就完成了代码。因为一直咳嗽,我觉得他应该是还感冒了。。。过了一会儿,又来了两三个学长(也好像是和我同级的)一上午稳稳地坐在那里,看资料,思考,敲代码。我看过学长的课表,课程比我们还多,他们都这么努力,我们更要勤奋刻苦。总之,我会努力学习的,我相信有一天,墙上也会多一份我获得的奖牌。

原创粉丝点击