图书介绍
ACM/ICPC算法基础训练教程pdf电子书版本下载
- 喻梅,于瑞国编著 著
- 出版社: 北京:清华大学出版社
- ISBN:9787302414452
- 出版时间:2015
- 标注页数:404页
- 文件大小:44MB
- 文件页数:419页
- 主题词:程序设计-算法-高等学校-教材
PDF下载
下载说明
ACM/ICPC算法基础训练教程PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如 BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第1章 基础算法 1
1.1 模拟题 1
1.1.1 基本概念 1
1.1.2 例题讲解 1
1.1.3 习题推荐 9
1.2 枚举算法 10
1.2.1 基本概念 10
1.2.2 例题讲解 10
1.2.3 习题推荐 13
1.3 递归算法 13
1.3.1 基本概念 13
1.3.2 例题讲解 14
1.3.3 习题推荐 16
1.4 贪心算法 16
1.4.1 基本概念 16
1.4.2 例题讲解 17
1.4.3 习题推荐 23
1.5 分治算法 24
1.5.1 基本概念 24
1.5.2 例题讲解 24
1.5.3 习题推荐 29
1.6 二分/三分算法 30
1.6.1 基本概念 30
1.6.2 例题讲解 30
1.6.3 习题推荐 33
第2章 数据结构 34
2.1 线性表 34
2.1.1 基本概念 34
2.1.2 基本特征 34
2.2 队列 35
2.2.1 基本概念 35
2.2.2 顺序队列的基本操作 35
2.2.3 循环队列 36
2.2.4 例题讲解 37
2.2.5 习题推荐 40
2.3 栈 40
2.3.1 基本概念 40
2.3.2 基本操作 40
2.3.3 栈的实现 41
2.3.4 栈的应用 42
2.3.5 例题讲解 43
2.3.6 习题推荐 44
2.4 堆 45
2.4.1 基本概念 45
2.4.2 基本操作 45
2.4.3 时间及空间复杂度 47
2.4.4 例题讲解 47
2.4.5 习题推荐 50
2.5 Hash 51
2.5.1 基本概念 51
2.5.2 哈希函数的构造方法 51
2.5.3 处理碰撞的方法 52
2.5.4 例题讲解 52
2.5.5 习题推荐 54
2.6 并查集 54
2.6.1 基本概念 54
2.6.2 基本操作 54
2.6.3 时间及空间复杂度 55
2.6.4 例题讲解 55
2.6.5 习题推荐 57
2.7 树状数组 57
2.7.1 基本概念 57
2.7.2 基本操作 58
2.7.3 时间及空间复杂度 59
2.7.4 例题讲解 59
2.7.5 习题推荐 63
2.8 线段树 63
2.8.1 基本概念 63
2.8.2 线段树中的“懒操作” 64
2.8.3 线段树的基本操作 64
2.8.4 例题讲解 66
2.8.5 习题推荐 69
2.9 最近公共祖先/区间最小值 70
2.9.1 基本概念 70
2.9.2 离线算法Tarjan 70
2.9.3 在线算法 71
2.9.4 RMQ 72
2.9.5 LAC+RMQ在线算法的具体实现 73
2.9.6 例题讲解 74
2.9.7 习题推荐 77
2.10 伸展树 77
2.10.1 基本概念 77
2.10.2 伸展树的基本操作 77
2.10.3 伸展树对区间的操作 81
2.10.4 例题讲解 83
2.10.5 习题推荐 92
2.11 K-Dimensional树 92
2.11.1 基本概念 92
2.11.2 基本思想 92
2.11.3 KD-Tree构建算法 93
2.11.4 例题讲解 95
2.11.5 习题推荐 98
第3章 搜索算法 99
3.1 宽度优先搜索 99
3.1.1 基本概念 99
3.1.2 算法实现 100
3.1.3 例题讲解 101
3.1.4 习题推荐 106
3.2 深度优先搜索 107
3.2.1 基本概念 107
3.2.2 算法实现 107
3.2.3 例题讲解 108
3.2.4 习题推荐 114
3.3 搜索与剪枝 114
3.3.1 基本概念 114
3.3.2 算法实现 114
3.3.3 例题讲解 115
3.3.4 习题推荐 117
3.4 A*算法 117
3.4.1 基本概念 117
3.4.2 算法实现 117
3.4.3 例题讲解 118
3.4.4 习题推荐 125
3.5 迭代加深搜索 125
3.5.1 基本概念 125
3.5.2 算法实现 125
3.5.3 例题讲解 126
3.5.4 习题推荐 132
3.6 双向宽度优先搜索 132
3.6.1 基本概念 132
3.6.2 算法实现 132
3.6.3 例题讲解 133
3.6.4 习题推荐 140
3.7 舞蹈链 140
3.7.1 基本概念 140
3.7.2 算法实现 140
3.7.3 例题讲解 141
3.7.4 习题推荐 146
第4章 图论基础 147
4.1 最小生成树 147
4.1.1 Prim算法 147
4.1.2 Kruskal算法 150
4.2 最短路 152
4.2.1 Dijkstra算法 152
4.2.2 Floyd算法 155
4.2.3 Bellman-Ford算法及SPFA算法 157
4.3 割点/割边 162
4.3.1 基本概念 162
4.3.2 算法实现 162
4.3.3 例题讲解 163
4.3.4 习题推荐 165
4.4 二分图匹配 166
4.4.1 基本概念 166
4.4.2 最大匹配 166
4.4.3 最大权匹配 167
4.4.4 习题推荐 167
4.5 拓扑排序 168
4.5.1 基本概念 168
4.5.2 算法实现 168
4.5.3 习题推荐 168
4.6 欧拉路和欧拉回路 168
4.6.1 基本概念 168
4.6.2 算法实现 169
4.6.3 例题讲解 169
4.6.4 习题推荐 172
4.7 强连通分量和2-SAT问题 172
4.7.1 基本概念 172
4.7.2 算法实现 173
4.7.3 2-SAT问题 174
4.7.4 例题讲解 174
4.7.5 习题推荐 181
第5章 网络流 182
5.1 最大流 182
5.1.1 网络流 182
5.1.2 残余网络与增广路 183
5.1.3 Ford-Fulkerson算法 184
5.1.4 最小割最大流定理 185
5.1.5 Dinic算法 186
5.1.6 例题讲解 191
5.1.7 习题推荐 200
5.2 费用流 200
5.2.1 最小费用流问题 200
5.2.2 最小费用流算法 201
5.2.3 实现代码 201
5.2.4 例题讲解 204
5.2.5 习题推荐 209
5.3 上下界网络流 209
第6章 动态规划算法 211
6.1 背包问题 211
6.1.1 基本概念 211
6.1.2 01背包问题 211
6.1.3 完全背包问题 213
6.1.4 多重背包问题 216
6.1.5 习题推荐 218
6.2 状态压缩 218
6.2.1 基本概念 218
6.2.2 经典旅行商问题 218
6.2.3 插头dp 221
6.2.4 习题推荐 228
6.3 动态规划优化 228
6.3.1 基本概念 228
6.3.2 数据结构优化 228
6.3.3 斜率优化 235
6.3.4 四边形不等式优化 238
6.3.5 习题推荐 240
6.4 常见动态规划题目类型 241
6.4.1 基本概念 241
6.4.2 树形dp 241
6.4.3 RMQ问题 243
6.4.4 有向图最短路 246
6.4.5 最长上升子序列 250
6.4.6 习题推荐 253
第7章 数学基础 254
7.1 组合游戏 254
7.1.1 基本概念 254
7.1.2 Nim游戏与Nim和 255
7.1.3 SG函数与SG定理 257
7.1.4 例题讲解 258
7.1.5 习题推荐 260
7.2 数论 261
7.2.1 基本概念 261
7.2.2 线性同余方程组 268
7.2.3 原根与离散对数 270
7.2.4 习题推荐 275
7.3 组合数学 276
7.3.1 基本计数问题 276
7.3.2 鸽巢原理 276
7.3.3 容斥原理 277
7.3.4 特殊计数数列 277
7.3.5 Pólya计数 279
7.3.6 习题推荐 281
7.4 快速傅里叶变换 281
7.4.1 多项式的表示 281
7.4.2 DFT与FFT算法 282
7.4.3 例题讲解 285
7.5 进一步学习的建议 286
第8章 字符串算法 288
8.1 Hash算法 288
8.1.1 基本概念 288
8.1.2 算法实现 289
8.1.3 例题讲解 290
8.1.4 习题推荐 292
8.2 最小循环表示 292
8.2.1 基本概念 292
8.2.2 算法实现 292
8.2.3 例题讲解 293
8.2.4 习题推荐 295
8.3 Manacher算法 295
8.3.1 基本概念 295
8.3.2 算法实现 295
8.3.3 例题讲解 296
8.3.4 习题推荐 297
8.4 KMP算法 297
8.4.1 基本概念 297
8.4.2 算法实现 298
8.4.3 next数组的性质 299
8.4.4 例题讲解 299
8.4.5 习题推荐 307
8.5 扩展KMP算法 308
8.5.1 基本概念 308
8.5.2 算法实现 308
8.5.3 例题讲解 309
8.5.4 习题推荐 315
8.6 字典树 316
8.6.1 基本概念 316
8.6.2 算法实现 316
8.6.3 例题讲解 317
8.6.4 习题推荐 322
8.7 AC自动机 322
8.7.1 基本概念 322
8.7.2 算法实现 322
8.7.3 AC自动机与动态规划算法的结合 324
8.7.4 例题讲解 324
8.7.5 习题推荐 335
8.8 后缀数组 335
8.8.1 基本概念 335
8.8.2 算法实现 335
8.8.3 后缀数组的使用技巧 339
8.8.4 例题讲解 339
8.8.5 习题推荐 343
8.9 后缀自动机 343
8.9.1 基本概念 343
8.9.2 算法实现 344
8.9.3 后缀自动机与动态规划的结合 346
8.9.4 例题讲解 346
8.9.5 习题推荐 359
第9章 计算几何基础 360
9.1 数学基础知识 360
9.2 向量的基本运算 361
9.2.1 基本概念 361
9.2.2 例题讲解 363
9.2.3 习题推荐 367
9.3 几何元素间的位置关系 368
9.3.1 基本概念 368
9.3.2 例题讲解 372
9.3.3 习题推荐 375
9.4 凸包 376
9.4.1 基本概念 376
9.4.2 例题讲解 377
9.4.3 习题推荐 379
9.5 半平面交 379
9.5.1 基本概念 379
9.5.2 算法实现 380
9.5.3 例题讲解 382
9.5.4 习题推荐 388
9.6 旋转卡壳算法 388
9.6.1 基本概念 388
9.6.2 例题讲解 389
9.7 三维几何 397
9.7.1 基本概念 397
9.7.2 习题推荐 399
9.8 三维凸包 399
9.8.1 基本概念 399
9.8.2 例题讲解 400
9.8.3 习题推荐 403
参考文献 404