第1章 组合问题与组合技术引论 1
1.1 工程完成时间的问题 1
1.1.1 问题 1
1.1.2 分析 2
1.1.3 关键路径分析 3
1.1.4 一个建筑的例子 4
1.2 匹配问题 7
1.2.1 问题 7
1.2.2 分析 7
1.2.3 排列 8
1.2.4 航空公司问题解决方案的实用性 9
1.3 背包问题 11
1.3.1 问题 11
1.3.2 分析 12
1.3.3 回顾实验问题 14
1.4 算法及其效率 15
1.4.1 算法的比较 15
1.4.2 多项式求值 16
1.4.3 子集生成算法 19
1.4.4 冒泡排序 21
历史注记 24
补充习题 25
计算机题 27
推荐读物 27
第2章 集合、关系和函数 28
2.1 集合运算 28
2.2 等价关系 32
2.3 偏序关系 37
2.3.1 偏序和全序 37
2.3.2 哈斯图 40
2.3.3 拓扑排序 41
2.4 函数 44
2.5 数学归纳法 52
2.6 应用 58
历史注记 65
补充习题 66
计算机题 69
推荐读物 69
第3章 编码理论 70
3.1 同余 70
3.2 欧几里得算法 75
3.2.1 最大公约数 75
3.2.2 欧几里得算法 75
3.2.3 欧几里得算法的效率 77
3.2.4 扩展的欧几里得算法 77
3.3 RSA方法 79
3.3.1 指数取模 80
3.3.2 RSA方法的解密 83
3.3.3 RSA方法的可行性 85
3.4 检错码和纠错码 86
3.5 矩阵码 93
3.5.1 矩阵码 93
3.5.2 编码的校验矩阵 94
3.6 单纠错矩阵码 99
3.6.1 校验矩阵行译码法 100
3.6.2 汉明码 101
历史注记 105
补充习题 106
计算机题 109
推荐读物 109
第4章 图 110
4.1 图及其表示 110
4.1.1 图的概念和表示 110
4.1.2 图的其他表示 112
4.1.3 同构 113
4.2 通路和回路 117
4.2.1 多重图、通路和回路 117
4.2.2 欧拉回路和欧拉通路 119
4.2.3 哈密顿回路和哈密顿通路 122
4.3 最短通路和距离 129
4.3.1 广度优先搜索算法 129
4.3.2 带权图 131
4.3.3 通路的数目 134
4.4 图着色 138
4.5 有向图和有向多重图 144
4.5.1 有向图 145
4.5.2 有向图的表示 145
4.5.3 有向多重图 146
4.5.4 有向欧拉回路和有向欧拉通路 148
4.5.5 有向哈密顿回路和有向哈密顿通路 149
历史注记 155
补充习题 156
计算机题 160
推荐读物 161
第5章 树 162
5.1 树的性质 162
5.2 生成树 168
5.2.1 生成树 169
5.2.2 广度优先搜索法 169
5.2.3 最小生成树和最大生成树 171
5.2.4 普里姆算法的证明 174
5.3 深度优先搜索 179
5.3.1 深度优先搜索法 179
5.3.2 回溯 183
5.4 根树 188
5.5 二叉树和遍历 193
5.5.1 表达式树 193
5.5.2 前序遍历 195
5.5.3 后序遍历 197
5.5.4 中序遍历 199
5.6 最优二叉树和二叉搜索树 202
5.6.1 最优二叉树 202
5.6.2 二叉搜索树 208
历史注记 215
补充习题 216
计算机题 219
推荐读物 220
第6章 匹配 221
6.1 相异代表系 221
6.1.1 相异代表系 221
6.1.2 霍尔定理 222
6.2 图中的匹配 225
6.2.1 匹配 225
6.2.2 偶图的矩阵 227
6.2.3 覆盖 227
6.3 匹配算法 231
6.3.1 独立集算法的应用示例 231
6.3.2 将算法运用于最大独立集 233
6.3.3 独立集算法 234
6.3.4 课程分配 235
6.4 算法的应用 239
6.4.1 柯尼希定理 240
6.4.2 霍尔定理的证明 241
6.4.3 瓶颈问题 242
6.5 匈牙利方法 245
6.5.1 匈牙利算法 245
6.5.2 匈牙利算法的证明 247
6.5.3 不是方阵的矩阵 248
6.5.4 最大和独立集 249
历史注记 250
补充习题 251
计算机题 252
推荐读物 253
第7章 网络流 254
7.1 流和割 254
7.2 流增广算法 261
7.3 最大流最小割定理 269
7.4 流和匹配 274
历史注记 280
补充习题 280
计算机题 283
推荐读物 283
第8章 计数技术 284
8.1 帕斯卡三角形和二项式定理 284
8.2 3个基本原理 287
8.3 排列和组合 293
8.4 允许重复的排列和组合 297
8.5 概率 302
8.6 容斥原理 306
8.7 排列和r组合的生成 315
8.7.1 排列的词典序枚举 315
8.7.2 r组合的词典序枚举 317
历史注记 320
补充习题 321
计算机题 323
推荐读物 324
第9章 递推关系与生成函数 325
9.1 递推关系 325
9.2 迭代法 333
9.3 常系数线性差分方程 341
9.3.1 一阶常系数线性差分方程 341
9.3.2 二阶线性齐次差分方程 344
9.4 用递推关系分析算法的效率 350
9.4.1 顺序查找算法和冒泡排序算法的效率 350
9.4.2 分治算法的效率 352
9.4.3 排序算法的效率 357
9.5 用生成函数计数 359
9.5.1 生成函数 360
9.5.2 形式幂级数 361
9.6 生成函数的代数 365
历史注记 372
补充习题 373
计算机题 375
推荐读物 376
第10章 组合电路和有限状态机 377
10.1 逻辑门 377
10.2 构造组合电路 383
10.3 卡诺图 388
10.4 有限状态机 397
10.4.1 奇偶校验机 398
10.4.2 有限状态机 399
10.4.3 带输出的有限状态机 400
历史注记 404
补充习题 405
计算机题 407
推荐读物 408
附录A 逻辑和证明简介 409
附录B 矩阵 425
附录C 本书中的算法 432
参考文献 436
奇数号习题答案 440