本书分为4个部分:第一部分介绍C++语言的基本知识,包括表达式、变量、分支、循环、数组、函数、字符串、结构体等内容;第二部分介绍一些基础算法,包括模拟、高精度、排序、枚举、递推、递归、贪心、二分、搜索等;第三部分介绍几种简单常用的数据结构,包括线性表、二叉树、并查集、哈希表和图;第四部分是在算法竞赛中需要使用数学基础,包括进制转换、位运算、计数原理、排列组合、质数合数、约数倍数等概念。 本书主要面向从未接触过程序设计竞赛(包括NOI系列比赛、ICPC系列比赛)的选手,也适用于稍有接触算法、希望进一步巩固算法基础的读者。 本书提供一些在线的配套资源,例如课件或勘误表,读者可以发邮件至编辑邮箱索取。