不到半年的时间,我从编程零基础到现在可以用C/C++解决简单的问题,中间经历了太多太多。
大一的前半学期算是荒废掉了,除了学习简单的C语言知识其他什么也不会,直到听说了ACM实验室可以学到很多新东西,所以准备打算去试试,第一次宣讲会由于我回家了没有去,直到第一次讲座。
第一次讲座-高精度解决了我学C遗留下来的一个问题,超出int的加法(乘法)应该怎么来做,当时第一周的题目全部都是英文没有写,到了第二周才开始补的。第二周的DFS让我发现了新大陆,原来C语言的递归还可以如此使用,居然可以走迷宫。第二周更加坚定了我在ACM的信念,第三周的BFS在听的时候其实并不是听得很懂,下来自己做题的时候才知道它的原理,也是因为这第三周的题目让我认识了超大佬,到寒假之前我一直只大概掌握了这3个基础的算法,为了提高自己,我选择了留校集训。
寒假集训前几天不敢说话,周围全是很厉害的人,只敢默默做题补题,第一天学到了很多的新东西,欧拉回路(通路),最小公倍数与最大公约数的关系,还有素数的筛法,都是闻所未闻的东西,第二天又学会了简单并查集,终于学会了久闻大名的并查集,因缺思厅。
过了几天大家都渐渐熟悉了起来,讲题的时候大家各抒己见,这就是我希望的实验室,大家并一定都十分厉害,但是可以相互争论,切磋和学习,这才是最快乐的时光。我不在乎能学到多少知识,但是我希望能认识更多有共同目标、有上进心的朋友。
后来又学了快速幂,最小生成树,最短路,优先队列等等,这些知识自己或多或少的敲了几遍,只要听懂了思路,算法实现就不是很难。即使能自己敲出上面的各种算法,但是遇到一些变形就可能不知所措,还需要努力。