断断续续花了三年时间,终于看完这本书,完成了所有习题。看书有很多种看法,开卷有益是一种,自始至终是另一种。有些题目很难,至今AC数只有数十人。据此估计,完整读完这本书的人应该不超过十这个量级。
读书的动机也有很多种,我既不是运动员,也不为面试,更不参和野鸡培训班或垃圾书。我记得CSDN上有位医生看完了整本黑书,我估计算法也无法帮助他评职称升主任。说实话,程序竞赛中的算法,大多数在日常开发中是用不上的。特别是数论,计算几何。就算是实际要用的算法,基本上也都有稳定优雅的开源类库,不会自己现场写。
那看算法竞赛书还有什么意义?当我花了整晚上单步一道题的时候,我也时不时冒出这个问题。这整晚的时间,够打好几盘游戏看好几话番组的,也够学点更实际的知识的,为什么要花在这些没用的题目上呢。就算做完这道竞赛题,也不会有什么实际的收益。但实际上,这是种类似于马拉松的锻炼。通过做一些超出能力范围的事,去拓展自己的能力范围。虽然没有立竿见影的功利收入,但长期下来的确可以提高个人层次。
看算法竞赛书的手段也有很多种。现实一点说,想要用尽量少的时间得到尽量多的拓展锻炼的话,可以先自己思考,但卡住的时候不要纠结,看看运动员是怎么做的。毕竟职业运动员有一套专业的训练系统与教练,资源上是比业余爱好者要好得多的。同样,要成为运动员,也是要额外付出大量时间和心血的。通过模仿专业人士,快速仿制自己的武器,不失为一种实用策略。
另外,看完《挑战》一书后,我也发现了这本书的瑕疵。这也是大部分书的通病——没有自我包含。光凭书中讲的知识,不足以完成课后习题。这也是为什么推荐多看别人代码的原因。事实上,在四处找资料的过程中,我发现不少国内的书籍、论文实际上讲得更加通俗易懂。
系列完结后,暂时没有新的计划。毕竟手头非常忙,极其忙。说到忙,不得不提这个系列的主旨以及博客的宗旨。
这个系列是一种模仿,大部分思想模仿自书上的例题和讲解,另一部分模仿自其他人的代码。如同前文所述,模仿是最有效的学习方式。但另一方面,毕竟不是自己产生的思想,很容易忘记。所以我需要复述,复述的听众当然是未来的自己。这和博客的宗旨是一致的,服务于个人备忘,不做任何保证。
最后,实在有太多事情要忙,抱歉无法及时回复评论。开源项目也是如此,这里的一切都是兴趣,没有义务。
支持博主,太强了,推荐 PapaMelon 的训练地址:https://www.papamelon.com/training_plan/cpc/problemset
great!!
好厉害,很久之前就开始关注你了!向你学习!
恭喜了,希望我4月也能顺利完成~提供一份习题册repo吧~
https://github.com/yogykwan/acm-challenge-workbook
啊,终于完了,恭喜啊,来晚了
我也要更努力!!!
太棒了!我也在看,还在看第二章,总是模仿你的代码
加油!我正在看你的博客进行《统计学习方法》的学习!
在自己成长的同时不知不觉也影响了许多未来的<自己>