《ACM/ICPC算法训练教程》PDF下载

  • 购买积分:12 如何计算积分?
  • 作  者:余立功主编
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2013
  • ISBN:9787302305132
  • 页数:310 页
图书介绍:本书针对ACM/ICPC国际大学生程序设计竞赛的情况,通过专题讲解、赛题分析、源码介绍,重点阐述了高于算法设计课程和数据结构课程要求的内容。

第1章 基础算法 1

1.1 枚举法 2

1.2 递归法 4

1.3 分治法 8

1.4 贪心法 12

1.4.1 拟阵 16

1.4.2 关于带权拟阵的贪心算法 16

1.4.3 任务时间表问题 17

1.5 模拟法 19

第2章 数据结构 22

2.1 基本数据结构 22

2.1.1 堆栈 22

2.1.2 队列 23

2.1.3 堆 25

2.1.4 并查集 29

2.2 线段树 33

2.3 树状数组 39

2.4 搜索树 43

2.4.1 二叉搜索树 44

2.4.2 AVL搜索树 47

2.4.3 红黑树 54

2.4.4 伸展树 55

2.4.5 Treap树堆 64

2.4.6 SBT 70

2.4.7 跳跃表 77

2.5 Hash表 83

2.6 左偏树 88

第3章 动态规划 96

3.1 动态规划简介 96

3.1.1 动态规划的基本思想 96

3.1.2 动态规划法的步骤 96

3.1.3 动态规划问题的特征 96

3.1.4 适用动态规划解题的条件 97

3.2 线性动态规划 97

3.3 树形动态规划 102

3.4 概率动态规划 103

3.5 动态规划中的状态压缩 105

第4章 数学问题 108

4.1 乘方取模和矩阵快速幂 108

4.1.1 乘方取模问题 108

4.1.2 矩阵快速幂 111

4.2 欧几里得算法 114

4.2.1 最大公约数与欧几里得算法 114

4.2.2 二元一次不定方程和扩展欧几里得算法 114

4.3 进位制转换 117

4.3.1 整数的进位制转换 117

4.3.2 小数的进位制转换 119

4.3.3 负进位制 119

4.4 欧拉函数 121

4.4.1 剩余类、完全乘余系、简化剩余系的概念 121

4.4.2 欧拉函数 121

4.5 素数判定和大数分解 123

4.5.1 素数判定 123

4.5.2 大整数分解 127

4.6 中国剩余定理 131

4.7 Pólya原理 134

第5章 计算几何 142

5.1 矢量 142

5.2 确定任意一对线段是否相交 151

5.3 线段合并 153

5.4 凸包 157

5.5 寻找最近点对 163

5.6 半平面交 167

5.7 旋转卡壳 173

5.8 扫描线 177

5.9 计算几何基本算法代码集锦 181

第6章 搜索算法 192

6.1 深度优先搜索 192

6.2 广度优先搜索 195

6.3 启发式搜索 197

第7章 图算法 204

7.1 图的表示方式 204

7.2 最短路算法 205

7.2.1 Dijkstra算法求最短路 205

7.2.2 SPFA(Bellman-Ford算法优化)求最短路及判定负环 211

7.2.3 Floyd求最短路 215

7.2.4 第k短路(A*算法) 217

7.2.5 差分约束系统 219

7.3 生成树算法 220

7.3.1 Prim算法求最小生成树 220

7.3.2 Kruskal求最小生成树 222

7.3.3 次小生成树 225

7.3.4 最优比率生成树 229

7.3.5 最小度限制生成树 233

7.4 图的连通性问题 238

7.4.1 无向图 238

7.4.2 有向图 242

7.4.3 连通性问题示例 246

7.5 网络流问题 254

7.5.1 网络流概述 254

7.5.2 最大流 256

7.5.3 模型的建立 264

7.5.4 最大流应用 268

7.5.5 费用流 270

7.6 二分图匹配 274

7.6.1 定义 274

7.6.2 二分图的匹配 274

7.6.3 二分图的最大匹配 274

7.6.4 与最大匹配相关的几个问题 275

7.6.5 用最大流解决二分匹配 276

7.6.6 二分图最优匹配 278

7.6.7 用费用流解决最优匹配 282

第8章 字符串算法 286

8.1 KMP算法 286

8.2 字典树 289

8.3 AC自动机 292

8.4 后缀数组 301

参考文献 310