目前为止,我见过的最好的算法竞赛入门书!_算法艺术与信息学竞赛书评-查字典图书网
查字典图书网
当前位置: 查字典 > 图书网 > 编程 > 算法艺术与信息学竞赛 > 目前为止,我见过的最好的算法竞赛入门书!
GungHo 算法艺术与信息学竞赛 的书评 发表时间:2012-01-31 04:01:02

目前为止,我见过的最好的算法竞赛入门书!

想搞算法竞赛(比如你们最熟悉的OI或者ACM/ICPC)?如果你觉得你已经掌握了C语言,那么最好就从这本书开始竞赛之旅吧!
这本书的优点有:
1 平易近人
如果你连这本书都不能看懂(如果你会C语言),请你先思考自己是不是有认真在看(有没有思考啊,复习啊,做后面的练习啊……之类的)。如果你真的很认真但还看不懂……我建议你不要搞竞赛好了……另外,给出几本不平易近人的书,例如黑书,例如全国信息学奥林匹克联赛培训教程1-2。
笔者当年(高一)的第一本算法书就是后者,其间的一些句段,在其后长达5年的竞赛生涯中才逐渐领会。只是苦了我当年,看不懂就重看一遍……最后还是没看懂……
不过坦白地说,这本书的后半段显得有些仓促,特别是网络流那段简直可以说是很草率。
2 贴近竞赛
竞赛毕竟不同于理论上的算法设计。
有些在具体程序实现中的常犯错误,如果没有人点拨,新手往往就会栽在这上面,而新手一般不怎么会调试程序,经常花了很多时间才会发现是一个非常小的错误。
有些竞赛中的优化时间的小技巧,可能在渐近时间复杂度上没有任何改变,但是可能会成为一道题超时和通过的分水岭。
有些理论虽然知道伪代码,但是自己写出来又臭又长,这就需要学习别人的优越写法。有些写法虽然会慢一些,但是代码简短,易于竞赛中的编码(越长的代码潜在通过成本(包括错误提交的惩罚和调试时间等)就越高)。这本书中给出了大部分关键算法的具体实现代码,并且很优越,值得借鉴和学习,特别是本书中利用STL优先队列来实现堆优化的dijkstra那段代码堪称完美,笔者在之前实现同样功能的模块,长度一般在其3倍以上……
还有比如动态规划那章,仔细比较了定表法和刷表法(这两个词汇是刘汝佳发明的吧?)之间的区别。这两个概念的提出对于具体的动态规划程序实现非常重要,而在一般的理论书籍里面是没有这些内容的。
3 OJ题目推荐
记得原来的竞赛书后面也有题目,但是却只有题面(有些甚至没有数据范围!),没有数据,编写出程序也不知道对不对(不过会有人编写那种无法验证对错的习题么……)。把题目放到OJ上,写出程序之后可以及时评测。

书里面的bug也不少,不过无伤大雅(比如不会告诉你int的取值范围是[-32768,32767])。找出这些bug就当是对读者的检验吧。

如果你把这本书看完了,习题也做了大半,强烈推荐阅读《算法艺术与信息学竞赛学习指导》和《算法艺术与信息学竞赛》。把那两本书看得差不多了,到那时你也知道自己下一步该看什么书了。另外后面那两本书有些内容超出目前竞赛平均水平太多,这个自己把握了。
如果你能把《算法艺术与信息学竞赛》及其学习指导大部分掌握,就目前来看,ACM/ICPC金牌应该还是随便的。

展开全文
有用 5 无用 0

您对该书评有什么想说的?

发 表

推荐文章

猜你喜欢

附近的人在看

推荐阅读

拓展阅读

对“目前为止,我见过的最好的算法竞赛入门书!”的回应

新世纪的神 2016-04-13 12:16:17

可惜现在这水平是不好拿到金牌了