《算法设计编程实验》PDF下载

  • 购买积分:15 如何计算积分?
  • 作  者:吴永辉,王建德编著
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2013
  • ISBN:9787111423836
  • 页数:461 页
图书介绍:本书每章为一个主题,实验内容安排紧扣大学算法和数学的教学,用程序设计竞赛中的算法和数学试题作为实验试题,将算法和数学的教学和程序设计竞赛的解题训练结合在了一起;其次,本书中二百道试题均能通过在线提交的方式进行裁判,使得实验和练习能方便地进行;再次,本书提供了官方的原版试题、测试数据和解答程序作为参考,读者可以通过对官方的测试数据的分析,了解测试数据的特点和常见陷阱,在以后的编程中提高解题质量和正确性。本书可以作为大专院校计算机专业算法课程教材,也可以作为计算机专业学生的研修资料和程序设计竞赛的培训教材。

第1章 求解Ad Hoc类问题的编程实验 1

1.1 机理分析法的实验范例 1

1.2 统计分析法的实验范例 5

1.3 相关题库 10

第2章 模拟法的编程实验 35

2.1 直叙式模拟的实验范例 36

2.2 筛选法模拟的实验范例 44

2.3 构造法模拟的实验范例 51

2.4 相关题库 55

第3章 数论的编程实验 69

3.1 素数运算的实验范例 69

3.1.1 使用筛法生成素数的实验范例 69

3.1.2 测试大素数的实验范例 76

3.2 求解不定方程和同余方程的实验范例 81

3.2.1 计算最大公约数和不定方程 81

3.2.2 计算同余方程和同余方程组 85

3.3 积性函数的实验范例 91

3.3.1 使用欧拉函数ψ(n)计算与n互质的正整数个数 92

3.3.2 使用莫比乌斯函数μ(n)计算非平方数n的质因子个数 97

3.4 相关题库 102

第4章 组合分析的编程实验 118

4.1 生成排列组合的实验范例 118

4.1.1 按字典序思想生成下一排列组合 118

4.1.2 按字典序思想生成所有的排列组合 121

4.2 排列组合计数的实验范例 122

4.2.1 一般的排列组合计数公式 123

4.2.2 两种特殊的排列组合计数公式 126

4.3 容斥原理与抽屉原理的实验范例 132

4.3.1 利用抽屉原理求解存在性问题 132

4.3.2 利用容斥原理对并集计数 134

4.4 波利亚定理的实验范例 140

4.4.1 波利亚定理的概念基础 141

4.4.2 利用波利亚定理计算集合在置换群作用下产生的等价类个数 148

4.5 相关题库 157

第5章 贪心法的编程实验 165

5.1 体验贪心法内涵的实验范例 165

5.2 利用数据有序化进行贪心选择的实验范例 172

5.3 在综合性的P类问题中使用贪心法的实验范例 181

5.4 相关题库 187

第6章 动态规划(DP)方法的编程实验 197

6.1 线性DP的实验范例 198

6.1.1 初步体验线性DP问题 198

6.1.2 子集和问题 202

6.1.3 最长公共子序列问题 203

6.1.4 最长递增子序列问题 206

6.2 树形DP的实验范例 213

6.3 状态压缩DP的实验范例 218

6.4 单调优化1D/1D DP的实验范例 224

6.4.1 经典模型1:利用决策代价函数w的单调性优化 224

6.4.2 经典模型2:利用决策区间下界的单调性优化 228

6.4.3 经典模型3:利用最优决策点的凸性优化 233

6.5 相关题库 236

第7章 高级数据结构的编程实验 273

7.1 后缀数组的实验范例 273

7.1.1 使用倍增算法计算名次数组和后缀数组 273

7.1.2 计算最长公共前缀 276

7.1.3 后缀数组的应用 278

7.2 线段树的实验范例 288

7.2.1 线段树的基本概念和基本操作 288

7.2.2 线段树单点更新的维护 290

7.2.3 线段树子区间更新的维护 293

7.3 处理特殊图的实验范例 306

7.3.1 计算欧拉图 306

7.3.2 计算哈密尔顿图 314

7.3.3 计算最大独立集 324

7.3.4 计算割点、桥和双连通分支 327

7.4 相关题库 336

第8章 计算几何的编程实验 354

8.1 点线面运算的实验范例 354

8.1.1 计算点积和叉积 354

8.1.2 计算线段交 361

8.1.3 利用欧拉公式计算多面体 371

8.2 利用扫描线算法计算矩形的面积并 375

8.2.1 沿垂直方向计算矩形的面积并 375

8.2.2 沿水平方向计算矩形的面积并 380

8.3 计算半平面交的实验范例 383

8.3.1 计算半平面交的联机算法 384

8.3.2 利用极角计算半平面交的算法 390

8.4 计算凸包和旋转卡壳的实验范例 398

8.4.1 计算凸包 399

8.4.2 旋转卡壳实验 403

8.5 相关题库 408