学习算法是件怎样的事
学习算法是件怎样的事,你以为你会学了一种算法,比方说BFS,看网上博客做了两道题,感觉自己会了,殊不知就这道题,过两天给你做,你压根做不出来。
再者,算法那么多,你要学到什么时候?学会一种算法,至少也要经历以下几个步骤:
在网上看讲解
看一道例题代码
找十几道考察到这个算法的题目自己独立做出来
这其中随便一个步骤就够自闭好几天,比方说最开始在网上看讲解,你用着粗糙的百度,输入了 "xxx 算法",最前面肯定是某 sdn 的文章:
你点开第一篇,看了 5 分钟,发现有一步解释的不是很清楚,看不懂了。
于是你点开第二篇,发现和第一篇写的居然差不多。
于是你点开第三篇,发现写的还不如第一篇......
就这么折腾了两天,结合b站、书籍、博客文章......你终于完整理解了一个算法的思想,接着你去看例题代码,发现有一行始终不理解什么意思,于是换一个例题,这回你终于看懂了。
最后你满怀信心去网上找题目练习,题目读了半天,发现题目读不懂。过了些许时间,题目读懂了,发现还是不会写。于是你就去看了别人的博客解答,发现原来这么简单,而当你写的时候,又忘了怎么做了。
就这样,一道题你又写了一整天。看到这,你确定以你高数期末都拿不到 90 的水平,还要学习算法吗?
然后终于终于你花费了十天半个月的课余时间习得了一种算法,并且得到了宝贵的机会去参加了两三场XCPC比赛。
你为难得的比赛机会悉心准备打乱了自己很多其他方面的学习进程,可是很不幸这几场比赛出题恰好没有涉及你勉强理解了的算法;
亦或者你所勉强理解了的算法只是解决这道题的一部分,比如说你掌握了DFS但这题需要在线段树上DFS还要离线并查集。
于是赛场上你发现努力了很久还是只能写写签到题、技巧题,深耕算法的你数学题都写不来,然后在人生简历上优胜奖喜加一。
选错赛区白打三年,选对赛区少打两年。这是信息学的奥赛,似乎也是公认所有大学生竞赛里难度最高、含金量最高的比赛。从区域赛银牌开始就不是单靠努力所能达到的了,哪怕你从大一刚入学就开始。