第1章 ACM国际大学生程序设计竞赛简介
1.1 ACM国际大学生程序设计竞赛概况
1.2 ACM国际大学生程序设计竞赛组织形式简介
1.2.1 组队方式和比赛形式
1.2.2 竞赛环境
1.2.3 判题结果
1.2.4 递交与评判
1.3 程序设计对学生的要求
1.4 程序设计语言选择
1.5 ACM程序设计竞赛题形式
习题1
第2章 程序设计基础
2.1 程序设计概述
2.2 算法基础
2.2.1 算法概述
2.2.2 算法复杂性
2.2.3 演绎方法的使用
2.2.4 演绎法算法设计举例
2.3 程序设计的输入输出形式
2.4 C++文件操作
2.5 输入输出格式控制
2.5.1 流基类ios层次图
2.5.2 非格式化抽取
2.5.3 操纵算子
2.6 排序
2.6.1 冒泡排序
2.6.2 快速排序
2.7 简单应用
2.7.1 转换十六进制数
2.7.2 颠倒原文
2.7.3 指定个数的整数求和
2.7.4 不指定个数的整数求和
习题2
第3章 程序设计简单问题
3.1 ACM/ICPC程序设计竞赛的题型
3.2 简单例子
3.2.1 空格字符与非空格字符统计
3.2.2 荷兰国旗问题
3.2.3 城市间的球面距离
3.2.4 合并电话簿
3.2.5 图书排序问题
习题3
第4章 高精度计算与代数计算
4.1 高精度计算
4.1.1 基本知识
4.1.2 高精度数据的处理方法
4.1.3 高精度四则运算的基本处理方法
4.2 高精度四则运算应用
4.2.1 A+B问题
4.2.2 公牛和母牛
4.2.3 A一月问题
4.2.4 计算余数问题
4.3 代数计算
4.4 实例研究
4.4.1 指数函数值
4.4.2 是金还是银
4.4.3 p倍和子集问题
4.4.4 杨辉三角形
4.4.5 黑白棋游戏
习题4
第5章 数论中的程序设计
5.1 从跳兽问题谈起
5.2 最大公因数与最小公倍数
5.2.1 公因数和最大公因数的概念
5.2.2 最小公倍数
5.2.3 欧几里得算法
5.3 利用欧几里得算法求整系数一次不定方程
5.4 求解模线性方程
5.4.1 模和同余
5.4.2 模线性方程
5.5 求modm的逆元素算法
5.6 模线性方程组与中国剩余定理
5.7 模幂运算与素数测试
5.7.1 模幂运算
5.7.2 素数测试
5.8 二次剩余与Pell方程
5.8.1 二次剩余
5.8.2 Pell方程
5.9 实例研究
5.9.1 MagicHorse
5.9.2 阶乘问题
5.9.3 邮票问题
5.9.4 Josephus问题
5.9.5 负数进制转换
5.9.6 数塔问题
5.9.7 幸运数
5.9.8 哥德巴赫猜想
习题5
第6章 组合数学中的程序设计
6.1 组合数学中有关概念与公式
6.1.1 排列与组合及有关的生成算法
6.1.2 母函数
6.1.3 容斥原理与错排
6.1.4 P6lya定理
6.2 实例研究
6.2.1 蛋糕
6.2.2 杨辉三角形中的奇偶问题
6.2.3 足球赛票
6.2.4 棋盘格数
6.2.5 保险柜上锁
6.2.6 弹球游戏
6.2.7 最少砝码
6.2.8 环
6.2.9 珍珠项链
6.2.1 0统计棋局数
习题6
第7章 动态规划
7.1 动态规划原理
7.2 实例研究
7.2.1 游船费问题
7.2.2 航线设置
7.2.3 复制书稿
7.2.4 括号序列
7.2.5 整数匹配问题
7.2.6 生日蛋糕
7.2.7 乘积最大
7.2.8 多边形计算
习题7
第8章 计算几何学
8.1 几何基本知识
8.1.1 矢量的概念
8.1.2 矢量加减法
8.1.3 矢量叉积
8.1.4 折线段的拐向判断
8.1.5 判断点是否在线段上
8.1.6 跨立试验与判断两线段是否相交
8.1.7 整数点与Pick定理
8.2 基本算法
8.3 凸包
8.3.1 凸包的概念与实例
8.3.2 Graham扫描法
8.3.3 Jarvis步进法
8.3.4 Graham扫描法与Jarvis步进法的程序实现
8.4 实例研究
8.4.1 有缺陷的卫星
8.4.2 篱笆
8.4.3 处于危险之中的飞行员
8.4.4 穿街走巷
8.4.5 三角形
习题8
……
第9章 搜索算法
第10章 一般图论中的程序设计
第11章 网络流与二分图
第12章 杂例
^ 收 起