《深入浅出程序设计竞赛》简介:
本书分为4部分:第1部分介绍C++语言的基础知识,包括表达式、变量、分支、循环、数组、函数、字符串、结构体等内容;第2部分介绍一些基础算法,包括模拟、高精度、排序、枚举、递推、递归、贪心、二分、搜索等;第3部分介绍几种简单常用的数据结构,包括线性表、二叉树、并查集、哈希表和图;第4部分是在算法竞赛中需要使用的数学基础,包括位运算与进制转换、计数原理、排列与组合、质数与合数、约数与倍数等概念。
本书主要面向从未接触过程序设计竞赛(包括NOI系列比赛、ICPC系列比赛)的选手,也适用于稍有接触算法、希望进一步巩固算法基础的读者。
本书提供一些在线的配套资源,例如课件或勘误表,读者可以发邮件至编辑邮箱1548103297@qq.com索取。
《深入浅出程序设计竞赛》目录:
前辅文
第1部分 语言入门
第1章 简简单单写程序
1.1 程序设计的目标和流程
1.2 简单数学运算
1.3 变量与常量
1.4 课后习题与实验
第2章 顺序结构程序设计
2.1 变量的数据类型
2.2 变量的输入与输出
2.3 顺序结构程序设计案例
2.4 提交评测与错误自查
2.5 课后习题与实验
第3章 分支结构程序设计
3.1 关系表达式与逻辑表达式
3.2 分支语句
3.3 分支嵌套
3.4 分支程序设计案例
3.5 课后习题与实验
第4章 循环结构程序设计
4.1 for语句和while语句
4.2 多重循环
4.3 循环结构程序设计案例
4.4 课后习题与实验
第5章 数组与数据批量存储
5.1 一维数组
5.2 多维数组
5.3 数组应用案例
5.4 课后习题与实验
第6章 字符串与文件操作
6.1 字符数组
6.2 string类型字符串
6.3 文件操作与重定向
6.4 课后习题与实验
第7章 函数与结构体
7.1 定义子程序
7.2 变量作用域与参数传递
7.3 递归函数
7.4 结构体的使用
7.5 课后习题与实验
第2部分 初涉算法
第8章 模拟与高精度
8.1 模拟方法问题实例
8.2 高精度运算
8.3 课后习题与实验
第9章 排序
9.1 计数排序
9.2 选择排序、冒泡排序、插入排序
9.3 快速排序
9.4 排序算法的应用
9.5 课后习题与实验
第10章 暴力枚举
10.1 循环枚举
10.2 子集枚举
10.3 排列枚举
10.4 课后习题与实验
第11章 递推与递归
11.1 递推思想
11.2 递归思想
11.3 课后习题与实验
第12章 贪心
12.1 贪心与证明
12.2 哈夫曼编码
12.3 课后习题与实验
第13章 二分查找与二分答案
13.1 二分查找
13.2 二分答案
13.3 课后习题与实验
第14章 搜索
14.1 深度优先搜索与回溯法
14.2 广度优先搜索
14.3 课后习题与实验
第3部分 简单数据结构
第15章 线性表
15.1 数组
15.2 栈
15.3 队列
15.4 链表
15.5 课后习题与实验
第16章 二叉树
16.1 二叉树的概念和建立
16.2 二叉树的遍历
16.3 二叉树的综合应用
16.4 课后习题与实验
第17章 集合
17.1 并查集
17.2 Hash表
17.3 集合应用实例
17.4 课后习题与实验
第18章 图的基本应用
18.1 图的概念和建立
18.2 图的遍历
18.3 DAG 与拓扑排序
18.4 课后习题与实验
第4部分 基础数学与数论
第19章 位运算与进制转换
19.1 各种进制
19.2 二进制的深入探究
19.3 逻辑命题与位运算
19.4 课后实验与习题
第20章 计数原理与排列组合
20.1 加法原理和乘法原理
20.2 排列与组合
20.3 课后习题与实验
第21章 整除理论
21.1 整除的基本知识
21.2 质数与合数
21.3 最大公约数与最小公倍数
21.4 (选读)算术基本定理
21.5 课后习题与实验
附录
附录A 程序设计环境配置
附录B 算法评价与复杂度
· · · · · ·