编辑推荐
本书详细介绍竞赛算法与程序设计,涵盖11章基础到高级知识。
内容简介
本书内容包括国际和国内大学生程序设计竞赛涉及的算法和程序设计知识,本书共有11章,内容包括操作系统与编程环境、C++基础知识、算法入门、图的基本算法、排序算法、基本数据结构、基本算法设计、用于集合操作的数据结构、用于字符串操作的数据结构、动态规划、有关数论的算法、图论高级算法、经典算法问题、搜索。
章节目录
封面
书名页
内容简介
版权页
前言
目录
第1章 高级数据结构
1.1 堆
1.1.1 堆的定义
1.1.2 建堆
1.1.3 堆排序算法
1.2 树状数组
1.2.1 树状数组的定义
1.2.2 树状数组的实现和使用
1.2.3 例题讲解
1.3 左倾堆
1.3.1 左倾堆相关定义和性质
1.3.2 左倾堆的操作
1.3.3 例题讲解
1.4 平衡二叉树
1.4.1 Treap
1.4.2 Splay树
1.4.3 例题讲解
1.5 练习题
第2章 字符串
2.1 Trie树
2.1.1 Trie树的原理
2.1.2 Trie树的实现
2.1.3 例题讲解
2.2 KMP算法
2.2.1 KMP算法的原理
2.2.2 KMP算法的实现
2.2.3 例题讲解
2.3 Aho-Corasick自动机
2.3.1 Aho-Corasick自动机原理
2.3.2 Aho-Corasick自动机算法的实现
2.3.3 例题讲解
2.4 后缀数组
2.4.1 后缀数组基本原理
2.4.2 后缀数组的应用
2.4.3 例题讲解
2.5 练习题
第3章 动态规划进阶算法
3.1 树状DP
3.1.1 树状DP的定义
3.1.2 树状DP解题方法
3.1.3 例题讲解
3.2 状态压缩DP
3.2.1 集合的整数表示
3.2.2 例题讲解
3.3 动态规划的优化方法
3.3.1 单调队列优化的动态规划
3.3.2 例题讲解
3.3.3 斜率优化的动态规划
3.3.4 例题讲解
3.3.5 四边形不等式优化的动态规划
3.3.6 例题讲解
3.4 练习题
第4章 图论高级算法
4.1 最大流
4.1.1 最大流的定义
4.1.2 增广路算法涉及的三个重要概念
4.1.3 Edmonds-Karp算法
4.1.4 Dinic算法
4.1.5 ISAP算法
4.1.6 网络流的建图
4.1.7 例题讲解
4.2 最小费用流
4.2.1 最小费用流算法
4.2.2 例题讲解
4.3 二分图匹配
4.3.1 二分图的定义
4.3.2 二分图的最大匹配
4.3.3 二分图的性质与应用
4.3.4 例题讲解
4.4 练习题
第5章 经典算法问题
5.1 多项式与快速傅里叶变换
5.1.1 多项式
5.1.2 多项式的表示与多项式乘法
5.1.3 DFT和FFT的实现
5.1.4 例题讲解
5.2 NP完全性
5.2.1 NP问题简介
5.2.2 哈密顿回路
5.2.3 例题讲解
5.3 对偶图问题
5.3.1 基本概念
5.3.2 平面图转化为对偶图
5.3.3 对偶图的应用
5.4 RMQ问题
5.4.1 RMQ问题的简单求解方法
5.4.2 ST(Sparse Table)算法
5.4.3 例题讲解
5.5 LCA问题
5.5.1 LCA问题的简单求解方法
5.5.2 基于倍增的双亲存储法
5.5.3 高效的LCA算法
5.5.4 例题讲解
5.6 练习题
第6章 组合数学
6.1 排列组合
6.1.1 基本计数原则
6.1.2 排列
6.1.3 组合
6.1.4 例题讲解
6.2 母函数
6.2.1 母函数基础
6.2.2 母函数的两类具体应用
6.2.3 例题讲解
6.3 整数划分
6.3.1 从动态规划到母函数
6.3.2 例题讲解
6.4 Stirling数和Catalan数
6.4.1 第一类Stirling数
6.4.2 第二类Stirling数
6.4.3 Catalan数
6.4.4 例题讲解
6.5 容斥原理与反演
6.5.1 容斥原理
6.5.2 反演理论
6.5.3 Mobius反演
6.5.4 例题讲解
6.6 群论与Polya定理
6.6.1 群的基本性质
6.6.2 置换群
6.6.3 Burnside定理及Polya定理
6.6.4 例题讲解
6.7 练习题
第7章 计算几何
7.1 多边形上的数据结构表示
7.1.1 点
7.1.2 线段
7.1.3 多边形类
7.1.4 例题讲解
7.2 多边形相交问题
7.2.1 线段相交
7.2.2 多边形相交问题的讨论
7.2.3 例题讲解
7.3 多边形求面积
7.3.1 计算多边形的面积
7.3.2 格点数
7.3.3 例题讲解
7.4 凸包
7.4.1 凸多边形
7.4.2 凸多边形的性质
7.4.3 构造凸包
7.4.4 例题讲解
7.5 相交问题
7.5.1 半平面交
7.5.2 凸多边形交
7.5.3 例题讲解
7.6 圆
7.6.1 圆与线段的交
7.6.2 圆与多边形的交的面积
7.6.3 圆与圆的交的面积
7.6.4 圆与圆的并的面积
7.7 练习题
第8章 组合游戏论
8.1 组合游戏论中的游戏
8.1.1 组合游戏论的定义
8.1.2 博弈树模型
8.1.3 巴什博弈
8.1.4 威佐夫博弈
8.1.5 例题讲解
8.2 NIM游戏和SG函数
8.2.1 NIM游戏的定义
8.2.2 NIM游戏中的性质
8.2.3 Sprague-Grundy函数的价值
8.2.4 SG函数的应用
8.2.5 例题讲解
8.3 NIM游戏的变形
8.3.1 ANTI-NIM问题
8.3.2 Staircase NIM
8.3.3 例题讲解
8.4 练习题
参考文献
封底
算法基础——打开程序设计之门是2019年由电子工业出版社出版,作者 刘胜蓝。
得书感谢您对《算法基础——打开程序设计之门》关注和支持,如本书内容有不良信息或侵权等情形的,请联系本网站。