本书分为5部分:第1部分介绍一些进阶技巧与思想,包括单调性优化、前缀、差分、离散化、分治、倍增、搜索剪枝等策略;第2部分介绍进阶数据结构,包括二叉堆、线段树、树状数组和字典树;第3部分介绍图论算法,包括树的性质、图的最短路和生成树,以及连通性问题;第4部分介绍动态规划,从动态规划的概念开始,逐渐深入,介绍线性、区间、树与图、状态压缩等不同形式的动态规划,最后介绍动态规划的优化策略;第5部分介绍算法竞赛中需要用到的数学知识,包括数论、组合数学与计数原理、概率与统计和基本线性代数;最后在附录中提供调试与对拍、命令行与脚本以及常数优化技巧的相关内容。
本书主要面向具有一定基础的程序设计竞赛(包括NOI系列比赛、ICPC系列比赛)选手,也适用于希望深入了解算法和数据结构的读者。
本书配套有课件、勘误表等教辅资源,读者可以发邮件至编辑邮箱1548103297@qq.com或者在洛谷讨论区中获取。