喻梅、于瑞国编写的《ACM\ICPC算法基础训练教 程(计算机系列教材普通高等教育十一五***规划 教材)》介绍ACM/ICPC的算法基础知识,主要内容包 括基础算法、数据结构、搜索算法、图论基础、网络 流(*大流、费用流、上下界网络流)、动态规划算 法、数学基础、字符串算法以及计算几何基础。每一 部分内容先介绍基本概念和基础理论,再通过例题讲 解算法。书中所有例题均给出源程序代码及解题思路 ,便于读者学习和参考。本书适用于刚刚步入 ACM/ICPC的初学者,书中算法由浅入深,循序渐进, 有利于初学者的学习。本书适合作为计算机及相关专 业程序设计、数据结构和算法设计与分析等课程的教 材,也可以作为计算机编程爱好者的参考书。
第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 基本概念
1.4.2 例题讲解
1.4.3 习题推荐
1.5 分治算法
1.5.1 基本概念
1.5.2 例题讲解
1.5.3 习题推荐
1.6 二分/三分算法
1.6.1 基本概念
1.6.2 例题讲解
1.6.3 习题推荐
第2章 数据结构
2.1 线性表
2.1.1 基本概念
2.1.2 基本特征
2.2 队列
2.2.1 基本概念
2.2.2 顺序队列的基本操作
2.2.3 循环队列
2.2.4 例题讲解
2.2.5 习题推荐
2.3 栈
2.3.1 基本概念
2.3.2 基本操作
2.3.3 栈的实现
2.3.4 栈的应用
2.3.5 例题讲解
2.3.6 习题推荐
2.4 堆
2.4.1 基本概念
2.4.2 基本操作
2.4.3 时间及空间复杂度
2.4.4 例题讲解
2.4.5 习题推荐
2.
2.5.1 基本概念
2.5.2 哈希函数的构造方法
2.5.3 处理碰撞的方法
2.5.4 例题讲解
2.5.5 习题推荐
2.6 并查集
2.6.1 基本概念
2.6.2 基本操作
2.6.3 时间及空间复杂度
2.6.4 例题讲解
2.6.5 习题推荐
2.7 树状数组
2.7.1 基本概念
2.7.2 基本操作
2.7.3 时间及空间复杂度
2.7.4 例题讲解
2.7.5 习题推荐
2.8 线段树
2.8.1 基本概念
2.8.2 线段树中的“懒操作”
2.8.3 线段树的基本操作
2.8.4 例题讲解
2.8.5 习题推荐
2.9 最近公共祖先/区间最小值
2.9.1 基本概念
2.9.2 离线算法
2.9.3 在线算法
2.9
2.9.5 LAC+RMQ在线算法的具体实现
2.9.6 例题讲解
2.9.7 习题推荐
2.1 0伸展树
2.1 0.1 基本概念
2.1 0.2 伸展树的基本操作
2.1 0.3 伸展树对区间的操作
2.1 0.4 例题讲解
2.1 0.5 习题推荐
2.1 1KDimensional树
2.1 1.1 基本概念
2.1 1.2 基本思想
2.1 1.3 KDTree构建算法
2.1 1.4 例题讲解
2.1 1.5 习题推荐
第3章 搜索算法
3.1 宽度优先搜索
3.1.1 基本概念
3.1.2 算法实现
3.1.3 例题讲解
3.1.4 习题推荐
3.2 深度优先搜索
3.2.1 基本概念
3.2.2 算法实现
3.2.3 例题讲解
3.2.4 习题推荐
3.3 搜索与剪枝
3.3.1 基本概念
3.3.2 算法实现
3.3.3 例题讲解
3.3.4 习题推荐
3.4 A算法
3.4.1 基本概念
3.4.2 算法实现
3.4.3 例题讲解
3.4.4 习题推荐
3.5 迭代加深搜索
3.5.1 基本概念
3.5.2 算法实现
3.5.3 例题讲解
3.5.4 习题推荐
3.6 双向宽度优先搜索
3.6.1 基本概念
3.6.2 算法实现
3.6.3 例题讲解
3.6.4 习题推荐
3.7 舞蹈链
3.7.1 基本概念
3.7.2 算法实现
3.7.3 例题讲解
3.7.4 习题推荐
第4章 图论基础
4.1 最小生成树
4.1.1 Prim算法
4.1.2 Kruskal算法
4.2 最短路
4.2.1 Dijkstra算法
4.2.2 Floyd算法
4.2.3 BellmanFord算法及SPFA算法
4.3 割点/割边
4.3.1 基本概念
4.3.2 算法实现
4.3.3 例题讲解
4.3.4 习题推荐
4.4 二分图匹配
4.4.1 基本概念
4.4.2 最大匹配
4.4.3 最大权匹配
4.4.4 习题推荐
4.5 拓扑排序
4.5.1 基本概念
4.5.2 算法实现
4.5.3 习题推荐
4.6 欧拉路和欧拉回路
4.6.1 基本概念
4.6.2 算法实现
4.6.3 例题讲解
4.6.4 习题推荐
4.7 强连通分量和2SAT问题
4.7.1 基本概念
4.7.2 算法实现
4.7.3 2SAT问题
4.7.4 例题讲解
4.7.5 习题推荐
第5章 网络流
5.1 最大流
5.1.1 网络流
5.1.2 残余网络与增广路
5.1.3 FordFulkerson算法
5.1.4 最小割最大流定理
5.1.5 Dinic算法
5.1.6 例题讲解
5.1.7 习题推荐
5.2 费用流
5.2.1 最小费用流问题
5.2.2 最小费用流算法
5.2.3 实现代码
5.2.4 例题讲解
5.2.5 习题推荐
5.3 上下界网络流
第6章 动态规划算法
6.1 背包问题
6.1.1 基本概念
6.1.2 01背包问题
6.1.3 完全背包问题
6.1.4 多重背包问题
6.1.5 习题推荐
6.2 状态压缩
6.2.1 基本概念
6.2.2 经典旅行商问题
6.2.3 插头
6.2.4 习题推荐
6.3 动态规划优化
6.3.1 基本概念
6.3.2 数据结构优化
6.3.3 斜率优化
6.3.4 四边形不等式优化
6.3.5 习题推荐
6.4 常见动态规划题目类型
6.4.1 基本概念
6.4.2 树形
6.4.3 RMQ问题
6.4.4 有向图最短路
6.4.5 最长上升子序列
6.4.6 习题推荐
第7章 数学基础
7.1 组合游戏
7.1.1 基本概念
7.1.2 Nim游戏与Nim和
7.1.3 SG函数与SG定理
7.1.4 例题讲解
7.1.5 习题推荐
7.2 数论
7.2.1 基本概念
7.2.2 线性同余方程组
7.2.3 原根与离散对数
7.2.4 习题推荐
7.3 组合数学
7.3.1 基本计数问题
7.3.2 鸽巢原理
7.3.3 容斥原理
7.3.4 特殊计数数列
7.3.5 Pólya计数
7.3.6 习题推荐
7.4 快速傅里叶变换
7.4.1 多项式的表示
7.4.2 DFT与FFT算法
7.4.3 例题讲解
7.5 进一步学习的建议
第8章 字符串算法
8.1 Hash算法
8.1.1 基本概念
8.1.2 算法实现
8.1.3 例题讲解
8.1.4 习题推荐
8.2 最小循环表示
8.2.1 基本概念
8.2.2 算法实现
8.2.3 例题讲解
8.2.4 习题推荐
8.3 Manacher算法
8.3.1 基本概念
8.3.2 算法实现
8.3.3 例题讲解
8.3.4 习题推荐
8.4 KMP算法
8.4.1 基本概念
8.4.2 算法实现
8.4.3 next数组的性质
&