本书依据IOI大纲编写,旨在提供一份全面的现代算法竞赛入门指南。
本书介绍仅在论坛和博客文章中讨论的算法竞赛技巧,内容包括递归算法和位运算、时间复杂度、排序算法和二分查找、数据结构、动态规划、图论算法、算法设计专题、区间查询、树上算法、数学专题、高级图算法、计算几何、字符串算法、根号分治技术、动态规划优化、回溯技术、如何准备IOI、算法竞赛的未来等。本书覆盖了从基础到高级的所有重要主题,形成了一套完整的学习体系,不仅能帮助你迅速提升编程技巧,还能让你深入了解各种基本算法和解题思路。
更多科学出版社服务,请扫码获取。
2004年毕业于华北水利水电学院机械设计专业曾就职于上海微软全球技术支持中心,担任.net虚拟机(CLR)以及Visual Studio Extensibility技术咨询顾问。2008年进入金融IT行业,就职于北京赞同信息技术有限公司,担任高级技术经理,负责基于.net平台的银行业务平台开发。专注于人工智能以及算法技术在金融科技领域的应用。同时担任四川大学ACM/ICPC算法竞赛集训队特邀指导老师,榕阳编程NOI、NOIP指导教练。所带学员多次获得ICPC金/银牌,进入NOI省队等。机械设计《算法竞赛入门经典:习题与解答》京东评论数20000+,《算法竞赛入门经典——训练指南 升级版》京东评论数20000+,《算法竞赛入门经典——算法实现》京东评论数20000+无
目录
第1章 引言 1
1.1 什么是算法竞赛? 2
1.2 关于本书 4
1.3 CSES题目集 5
1.4 其他资源 7
参考文献 8
第2章 编程技巧 9
2.1 语言特性 10
2.2 递归算法 16
2.3 位运算 19
参考文献 25
第3章 算法效率 27
3.1 时间复杂度 28
3.2 算法设计示例 33
3.3 代码优化 37
第4章 排序与搜索 43
4.1 排序算法 44
4.2 通过排序解决问题 49
4.3 二分查找 53
第5章 数据结构 57
5.1 动态数组 58
5.2 集合结构 61
5.3 实验 66
第6章 动态规划 69
6.1 基本概念 70
6.2 更多示例 75
参考文献 82
第7章 图论算法 83
7.1 图论基础知识 84
7.2 图遍历 88
7.3 最短路 92
7.4 有向无环图 98
7.5 后继图 102
7.6 最小生成树 104
参考文献 110
第8章 算法设计专题 111
8.1 位并行算法 112
8.2 均摊分析(amortized analysis) 115
8.3 查找最小值 119
参考文献 121
第9章 区间查询 123
9.1 静态数组上的查询 124
9.2 树结构 126
参考文献 132
第10章 树上算法 133
10.1 基本技术 134
10.2 树上查询 139
10.3 高级技术 145
参考文献 146
第11章 数学专题 147
11.1 数论 148
11.2 组合数学 157
11.3 矩阵 165
11.4 概率 174
11.5 博弈论 181
11.6 傅里叶变换 187
11.7 猜测公式 192
参考文献 196
第12章 高级图算法 197
12.1 强连通性 198
12.2 完整路径 201
12.3 最大流 205
12.4 深度优先搜索树 214
12.5 最小费用流 216
参考文献 221
第13章 计算几何 223
13.1 几何技术 224
13.2 扫描线算法 231
参考文献 234
第14章 字符串算法 235
14.1 基本约定 236
14.2 字符串哈希 239
14.3 Z 算法 242
14.4 后缀数组 245
14.5 字符串自动机 248
参考文献 254
第15章 附加主题 255
15.1 根号分治技术 256
15.2 线段树再探 262
15.3 Treaps 269
15.4 动态规划优化 272
15.5 回溯技术 276
15.6 杂项 280
参考文献 285
第16章 Python在算法竞赛中的应用 287
16.1 引言 288
16.2 数据结构 292
16.3 没有二叉搜索树的情况下的对策 297
16.4 递归函数 299
16.5 运行效率 302
16.6 将Python作为工具使用 304
第17章 如何准备IOI 309
17.1 竞赛概述 310
17.2 赛前准备 314
17.3 技术技能 316
17.4 竞赛期间 321
参考文献 324
第18章 算法竞赛的未来 325
18.1 生成式AI 326
18.2 接下来会发生什么 328
参考文献 328
附录 数学背景知识 329