USACO,全称United States of America Computing Olympiad,即美国计算机奥林匹克竞赛。
以下是网上查到的关于USACO(美国计算机奥林匹克竞赛)的推荐书籍:
一、国内推荐书籍
有一种观点,冲击USACO铂金,无非就是“吃透”下面的前5本。这种论调是网上看得比较多的,但是老金也是刚刚查到,没看过书里具体内容。
老金发现持这种说法的都是培训网站,所以可信度值得怀疑。
1.《USACO算法书》
《AN INTRODUCTION TO THE USA COMPUTING OLYMPIAD》(Darren Yao著,2020年)
这本应该不是正式出版的书,可能只是个人总结的东西。
这本书是一本备考USACO学术活动的综合指南,涵盖了USACO竞赛铜组、银组、黄金组、铂金组常用的算法,为考生提供了一站式的备考指南。
本书适合零基础开始学习USACO的同学,是学习USACO必备的读物。
2.《编程竞赛手册》
《Competitive Programmer’s Handbook》(Antti Laaksonen著,Draft August 19, 2019)
对编程知识和算法进行了详尽的解释,有助于考生系统地掌握基础算法。
算法的设计涉及问题解决和数学思维,需要具备问题分析和创造性解决问题的能力。解决问题的算法必须同时正确和高效,因为问题的核心通常在于发明一种高效的算法。对于有竞争力的程序员来说,算法理论知识至关重要。
3.《哈希表》
《HASH TABLES》
哈希表,又称散列表,是一种数据结构,提供了迅速的插入和查找操作。不论哈希表中的数据量多大,插入和查找的时间复杂度始终为O(1)。由于哈希表的查找速度非常快,它在许多程序中得到了广泛应用。
4.《竞赛编程》
貌似作者是Steven & Felix,英文书名没查到。
从竞赛编程、竞赛技巧、数据结构和库、图表、字符串处理等方面介绍了USACO竞赛,包含了公约和问题、分类缩写、列表表格、列表数字、数论应用、计算几何等内容。
5.《算法解决导论》
《Principles of Algorithmic Problem Solving》(Johan Sannemo 著,October 24, 2018)
这本书为考生提供了算法的基本知识和思维方法,有助于理解和解决竞赛中的复杂问题。
6.《算法基础:第五版》
《Foundations Of Algorithms》
《算法基础》是世界上许多高校广泛采用的算法教材之一。第5版新增了一章,介绍遗传算法和遗传编程。
书中对算法设计、算法的复杂度分析和计算复杂度进行了恰如其分的介绍。作者用平实的语言和简单的符号介绍了各种抽象的数学概念,既浅显易懂,又不失严谨。
7.《算法竞赛入门第二版》(刘汝佳著)
这本书也是信奥的经典教材,被称为紫书。
适合语言零基础的初学者,有近200道竞赛真题分析,有实用主义的C++和STL讲解,代码简洁、清晰。
可作为青少年信息学奥林匹克联赛(NOIP)复赛教材、全国青少年信息学奥林匹克竞赛(NOI)和ACM国际大学生程序设计竞赛(ACM/ICPC)的训练资料。
二、外国学生推荐书籍
以下是一个美国西海岸的一名高中生(铜级别满分(1000/1000),银级别930/1000高分)分享的书籍,不涉及到利益,应该有一定可信度:
1.《Competitive Programming》(Steven Halim和Felix Halim、Suhendry Effendy著,2018年)。
2.《Programming Challenges》(Steven S Skiena / Miguel A. Revilla著,2008年)
这本书有刘汝佳大神译的中文版,有大神加持,可见这本书的质量。
3.《Looking for a Challenge》(the University of Warsaw著,2012年)。
此外,还有许多优质的通用算法书籍:《算法导论》(Cormen、Leiserson、Rivest和Stein著)、《算法设计》(Kleinberg和Tardos著)、《算法设计手册》(Skiena著)以及《算法》(Sedgewick和Wayne著)。另一本最近出版的在可理解性方面似乎非常有前景的书是《算法思维》(Daniel Zingaro著)。