1
成员
130 文章
本书分为准备篇、基础篇和应用篇三大部分,借助在线评测系统Aizu Online Judge以及大量例题,详细讲解了算法与复杂度、初等和高等排序、搜索、递归和分治法、动态规划法、二叉搜索树、堆、图、计算几何学、数论等算法和数据结构的关键知识点,既可以作为挑战程序设计竞赛的参考书,也可以用来引导初学者系统学习算法和数据结构的基础知识。本书适合所有程序设计人员、程序设计竞赛爱好者以及高校计算机专业师生阅读。

第1部分 [准备篇]攻克程序设计竞赛的学习方法 

第1章 有效运用在线评测系统

  • 1.1 攻克程序设计竞赛的学习方法 
  • 1.2 什么是在线评测
  • 1.3 用户注册 
  • 1.4 浏览问题
  • 1.5 解答问题
  • 1.6 个人页面
  • 1.7 如何运用本书

第2部分 [基础篇]为程序设计竞赛做准备的算法与数据结构

第2章 算法与复杂度

  • 2.1 算法是什么 
  • 2.2 问题与算法示例
  • 2.3 伪代码 
  • 2.4 算法的效率
  • 2.5 入门问题

第4章 数据结构

  • 4.1 挑战问题之前——什么是数据结构
  • 4.2 栈
  • 4.3 队列
  • 4.4 链表
  • 4.5 标准库的数据结构
  • 4.6 数据结构的应用——计算面积

第5章 搜索 

  • 5.1 挑战问题之前——搜索
  • 5.2 线性搜索
  • 5.3 二分搜索
  • 5.4 散列法
  • 5.5 借助标准库搜索
  • 5.6 搜索的应用——计算最优解

第6章 递归和分治法

  • 6.1 挑战问题之前——递归与分治
  • 6.2 穷举搜索
  • 6.3 科赫曲线

第7章 高等排序

  • 7.1 归并排序
  • 7.2 分割
  • 7.3 快速排序
  • 7.4 计数排序
  • 7.5 利用标准库排序 
  • 7.6 逆序数
  • 7.7 最小成本排序

第8章 树

  • 8.1 挑战问题之前——树结构
  • 8.2 有根树的表达
  • 8.3 二叉树的表达
  • 8.4 树的遍历
  • 8.5 树遍历的应用——树的重建

第9章 二叉搜索树

  • 9.1 挑战问题之前——二叉搜索树
  • 9.2 二叉搜索树——插入
  • 9.3 二叉搜索树——搜索
  • 9.4 二叉搜索树——删除
  • 9.5 通过标准库管理集合

第10章 堆

  • 10.1 挑战问题之前——堆 
  • 10.2 完全二叉树
  • 10.3 最大/最小堆
  • 10.4 优先级队列
  • 10.5 通过标准库实现优先级队列 

第11章 动态规划法

  • 11.1 挑战问题之前——动态规划法的概念
  • 11.2 斐波那契数列 
  • 11.3 最长公共子序列
  • 11.4 矩阵链乘法

第12章 图

  • 12.1 挑战问题之前——图
  • 12.2 图的表示 
  • 12.3 深度优先搜索
  • 12.4 广度优先搜索
  • 12.5 连通分量

第13章 加权图

  • 13.1 挑战问题之前——加权图
  • 13.2 最小生成树 
  • 13.3 单源最短路径 

第3部分 [应用篇]程序设计竞赛的必备程序库

第14章 高等数据结构

  • 14.1 互质的集合
  • 14.2 范围搜索
  • 14.3 其他问题

第15章 高等图算法

  • 15.1 所有点对间最短路径
  • 15.2 拓扑排序 
  • 15.3 关节点
  • 15.4 树的直径 
  • 15.5 最小生成树
  • 15.6 其他问题

第16章 计算几何学

  • 16.1 几何对象的基本元素与表现
  • 16.2 直线的正交/平行判定
  • 16.3 投影 
  • 16.4 映象 
  • 16.5 距离
  • 16.6 逆时针方向 
  • 16.7 判断线段相交
  • 16.8 线段的交点
  • 16.9 圆与直线的交点
  • 16.10 圆与圆的交点
  • 16.11 点的内包
  • 16.12 凸包
  • 16.13 线段相交问题
  • 16.14 其他问题

第17章 动态规划法

  • 17.1 硬币问题
  • 17.2 背包问题
  • 17.3 最长递增子序列
  • 17.4 最大正方形
  • 17.5 最大长方形
  • 17.6 其他问题

第18章 数论

  • 18.1 质数检验
  • 18.2 最大公约数
  • 18.3 幂乘
  • 18.4 其他问题 

第19章 启发式搜索 

  • 19.1 八皇后问题
  • 19.2 九宫格拼图
  • 19.3 十六格拼图
  • 附录
  • 通过本书可以获得的技能
  • 挑战以往的程序设计竞赛真题! 
  • 参考文献  404