《程序设计中常用的解题策略》PDF下载

  • 购买积分:13 如何计算积分?
  • 作  者:王建德,吴永辉编著
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2009
  • ISBN:9787115202406
  • 页数:363 页
图书介绍:本书主要侧重解题策略方面,书中主要介绍了数据关系上的构造策略、数据统计上的二分策略、动态规划上的优化策略、计算几何问题上的应对策略。目的是使读者对编程解题的策略有一个比较全面的了解,帮助读者提高编程能力。

第1章 利用树型结构解题的策略 1

1.1 解决树的最大/最小划分问题的一般方法 1

1.1.1 解法1——二分查找最大的下界 2

1.1.2 解法2——向下移动“割” 3

1.1.3 在两种解法的基础上进一步优化 8

1.2 利用最小生成树及其扩展形式解题 11

1.2.1 利用最小生成树解题 14

1.2.2 最小k度限制生成树的思想和应用 23

1.2.3 次小生成树的思想和应用 34

1.3 利用线段树解决区间计算问题 37

1.3.1 线段树的基本概念 37

1.3.2 线段树的基本操作 39

1.3.3 应用线段树解题 40

1.4 利用伸展树优化动态集合的操作 49

1.4.1 伸展树的基本操作 50

1.4.2 伸展树的效率分析 52

1.4.3 应用伸展树解题 54

1.5 利用左偏树实现优先队列的合并 58

1.5.1 左偏树的定义和性质 58

1.5.2 左偏树的操作 59

1.5.3 应用左偏树解题 66

1.6 利用“跳跃表”替代树结构 69

1.6.1 跳跃表的概况 69

1.6.2 跳跃表的基本操作 69

1.6.3 跳跃表的效率分析 72

1.6.4 应用跳跃表解题 74

小结 86

第2章 利用图形(网状)结构解题的策略 87

2.1 利用网络流算法解题 87

2.1.1 网络与流的概念 87

2.1.2 在增广路径的基础上计算最大流 88

2.1.3 利用最大流最小割切定理解题 99

2.1.4 求容量有上下界的最大流问题 102

2.1.5 计算带费用的流量问题 109

2.2 利用图的匹配算法解题 120

2.2.1 匹配的基本概念 120

2.2.2 计算二分图的匹配 122

2.2.3 利用一一对应的匹配性质转化问题 128

2.3 利用“分层图思想”解题 145

2.3.1 利用“分层图思想”化未知为已知 145

2.3.2 利用分层图思想优化算法 150

2.4 利用平面图性质解题 155

2.4.1 平面图的基本概念 155

2.4.2 平面图的应用实例 156

2.4.3 偏序集的基本概念 166

2.4.4 偏序集的应用实例 168

2.5 在充分挖掘和利用图论模型性质的基础上优化算法 172

小结 179

第3章 数据关系上的构造策略 181

3.1 选择数据的逻辑结构的基本原则 181

3.1.1 充分利用“可直接使用”的信息 182

3.1.2 不记录“无用”信息 185

3.2 选择数据的存储结构的基本方法 191

3.2.1 合理采用顺序存储结构 192

3.2.2 必要时采用链式存储结构 192

3.3 科学组合多种数据结构 198

3.3.1 数据结构的“并联” 198

3.3.2 数据结构的“嵌套” 204

小结 210

第4章 数据统计上的二分策略 211

4.1 利用线段树统计数据 211

4.1.1 解决一维数据序列的统计问题 211

4.1.2 解决二维数据区的统计问题 214

4.2 一种解决动态统计的静态方法 219

4.2.1 讨论一维序列的求和问题 219

4.2.2 二维序列的求和问题 221

4.3 在静态二叉排序树上统计数据 223

4.3.1 建立静态二叉排序树 223

4.3.2 在静态二叉排序树上进行统计 224

4.3.3 静态二叉排序树的应用 225

4.4 在虚二叉树上统计数据 229

小结 235

第5章 动态规划上的优化策略 236

5.1 减少状态总数的基本策略 236

5.1.1 改进状态表示 237

5.1.2 选择适当的规划方向 240

5.2 减少每个状态决策数的基本策略 243

5.2.1 利用最优决策的单调性 243

5.2.2 优化决策量 253

5.2.3 合理组织状态 255

5.2.4 细化状态转移 260

5.3 减少状态转移时间的基本策略 269

5.3.1 减少决策时间 270

5.3.2 减少计算递推式的时间 277

小结 280

第6章 计算几何上的应对策略 282

6.1 应对纯粹计算题的策略探讨 282

6.1.1 利用多维线段树解决矩形或长方体几何的计算问题 283

6.1.2 利用矩形切割思想进行几何计算和数据统计 294

6.1.3 利用极大化思想解决最大子矩形问题 307

6.1.4 利用半平面交的算法计算凸多边形 319

6.2 应对存在性问题的策略探讨 327

6.2.1 直接通过几何计算求解 327

6.2.2 转换几何模型求解 338

6.3 应对最佳值问题的策略探讨 340

6.3.1 采用高效的几何模型 341

6.3.2 采用极限法 349

6.3.3 采用逼近最佳解的近似算法 360

小结 362