《国际大学生程序设计竞赛例题解 1 数论、计算几何、搜索算法专集》PDF下载

  • 购买积分:11 如何计算积分?
  • 作  者:郭嵩山等编著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2006
  • ISBN:7121025051
  • 页数:293 页
图书介绍:本书以数论、计算几何、搜索算法三个专题的形式介绍了ACM国际大学生程序设计竞赛(ACM/ICPC)中所用到的典型算法,并结合例题,对如何灵活地运用这些算法进行比较详细分析和深入浅出的讲解。本书以精讲多练为教学宗旨,并在每一个专题论述后用一~二章的篇幅选出一批有代表性的竞赛例题,对每道例题都有详细的解题的分析和基本的测试数据以及答案,以便同学们能在了解基本算法后作为学习、训练之用。随书还附有光盘,存放所有例题中完整的测试数据,以便于有更高、更严格要求的同学能利用规模更大的测试数据进行训练和学习。

第1章 数论相关知识及其基本算法 1

1.1 自然数和整数 1

1.2 整除 2

1.3 最大公约数和最小公倍数 2

1.3.1 公约数和最大公约数 2

1.3.2 公倍数和最小公倍数 2

1.3.3 编程求最大公约数和最小公倍数 3

1.3.4 基本算法描述 3

1.4 同余 4

1.5 素数 6

1.5.1 筛法求素数 6

1.5.2 素数的判定 7

1.6 密码学相关内容 9

2.1.3 程序 10

2.1.2 问题分析 10

2.1.1 题目描述 10

2.1 K尾相等数 10

第2章 数论解题样例 10

2.1.4 测试数据及参考答案 11

2.2 3n+1数链问题 11

2.2.1 题目描述 11

2.2.2 问题分析 12

2.2.3 程序 12

2.2.4 测试数据及参考答案 14

2.3 高级机密 14

2.3.1 题目描述 14

2.3.2 问题分析 14

2.3.3 程序 15

2.3.4 测试数据及参考答案 15

2.4 负权数 15

2.4.1 题目描述 15

2.4.2 问题分析 16

2.4.3 程序 17

2.4.4 测试数据及参考答案 19

2.5 质多项式 20

2.5.1 题目描述 20

2.5.2 问题分析 20

2.5.3 程序 21

2.5.4 测试数据及参考答案 24

2.6.3 程序 25

2.6.2 问题分析 25

2.6.1 题目描述 25

2.6 猴子舞 25

2.6.4 测试数据及参考答案 31

2.7 数制转换 32

2.7.1 题目描述 32

2.7.2 问题分析 32

2.7.3 程序 33

2.7.4 测试数据及参考答案 35

2.8.1 题目描述 36

2.8 大众比萨 36

2.8.2 问题分析 38

2.8.3 程序 41

2.8.4 测试数据及参考答案 42

第3章 计算几何相关知识及其基本算法 44

3.1 矢量与线段 45

3.1.1 矢量的定义 45

3.1.2 矢量加减法 45

3.1.3 矢量乘法 46

3.1.4 折线段的拐向判断 46

3.1.5 线段所在直线 47

3.2 面积的计算 47

3.2.1 三角形面积的计算 47

3.2.2 简单多边形面积的计算 48

3.3 三角形与相关圆 48

3.3.1 三角形外接圆 48

3.3.2 三角形内切圆 50

3.4.1 判断点是否在线段上 52

3.4.2 判断线段是否相交 52

3.4 判定线段是否相交 52

3.4.3 判断线段是否和直线相交 53

3.5 判定点是否在多边形内 53

3.5.1 判断点在三角形内 53

3.6 对称、平移、旋转 54

3.6.1 点关于点的对称点 54

3.5.2 判断点在多边形内 54

3.6.2 点关于直线的对称点 55

3.6.3 点关于线段的对称点 55

3.6.4 平移 55

3.6.5 旋转 55

3.7 凸包 56

3.8 三角剖分与Voronoi图 57

4.1.2 问题分析 59

4.1.1 题目描述 59

4.1 最短表面距离 59

第4章 计算几何解题样例 59

4.1.3 程序 62

4.1.4 测试数据及参考答案 67

4.2 反射 67

4.2.1 题目描述 67

4.2.2 问题分析 68

4.2.3 程序 69

4.2.4 测试数据及参考答案 72

4.3 铝块切分 72

4.3.1 题目描述 72

4.3.2 问题分析 73

4.3.3 程序 74

4.3.4 测试数据及参考答案 81

4.4.3 程序 82

4.4.2 问题分析 82

4.4.1 题目描述 82

4.4 点在哪 82

4.4.4 测试数据及参考答案 85

4.5 最小半径圆 86

4.5.1 题目描述 86

4.5.2 问题分析 86

4.5.3 程序 87

4.5.4 测试数据及参考答案 91

4.6 走出限区 91

4.6.1 题目描述 91

4.6.2 问题分析 93

4.6.3 程序 94

4.6.4 测试数据及参考答案 98

4.7 蜂族的旅行 98

4.7.1 题目描述 98

4.7.2 问题分析 99

4.7.3 程序 100

4.7.4 测试数据及参考答案 102

4.8 弹孔问题 103

4.8.1 题目描述 103

4.8.2 问题分析 104

4.8.3 程序 104

4.8.4 测试数据及参考答案 108

4.9 城堡围墙 108

4.9.1 题目描述 108

4.9.2 问题分析 109

4.9.3 程序 109

4.9.4 测试数据及参考答案 111

4.10 多边形游戏 112

4.10.1 题目描述 112

4.10.2 问题分析 113

4.10.3 程序 113

4.11.1 题目描述 118

4.10.4 测试数据及参考答案 118

4.11 相似性判断 118

4.11.2 问题分析 119

4.11.3 程序 119

4.11.4 测试数据及参考答案 124

4.12 三角形 126

4.12.1 题目描述 126

4.12.2 问题分析 127

4.12.3 程序 127

4.12.4 测试数据及参考答案 129

第5章 搜索技术 132

5.1 枚举算法 132

5.2 广度优先搜索算法 132

5.3 深度优先搜索算法 133

5.4 双向广度优先搜索算法 134

5.5 A*算法 136

5.6 回溯算法 138

5.7 搜索中的优化 139

第6章 搜索解题样例(一) 141

6.1 马的走法 141

6.1.1 题目描述 141

6.1.2 问题分析 141

6.1.3 程序清单 142

6.1.4 测试数据及参考答案 143

6.2 大整数 143

6.2.1 题目描述 143

6.2.2 问题分析 144

6.2.3 程序清单 145

6.2.4 测试数据及参考答案 148

6.3 著名医生的药方 148

6.3.1 题目描述 148

6.3.2 问题分析 149

6.3.3 程序清单 150

6.4.1 题目描述 156

6.3.4 测试数据及参考答案 156

6.4 王伯买鱼 156

6.4.2 问题分析 157

6.4.3 程序清单 158

6.4.4 测试数据及参考答案 162

6.5 数学家旅游 164

6.5.1 题目描述 164

6.5.2 问题分析 165

6.5.3 程序清单 166

6.5.4 测试数据及参考答案 170

6.6 单轨砌积木 172

6.6.1 题目描述 172

6.6.2 问题分析 173

6.6.3 程序清单 175

6.6.4 测试数据及参考答案 178

6.7.2 问题分析 179

6.7.1 题目描述 179

6.7 国际象棋停车安全问题 179

6.7.3 程序清单 180

6.7.4 测试数据及参考答案 182

6.8 分球 183

6.8.1 题目描述 183

6.8.2 问题分析 183

6.8.3 程序清单 184

6.8.4 测试数据及参考答案 190

6.9 骑士问题 192

6.9.1 题目描述 192

6.9.2 问题分析 193

6.9.3 程序清单 194

6.9.4 测试数据及参考答案 196

6.10 登山 198

6.10.1 题目描述 198

6.10.3 程序清单 199

6.10.2 问题分析 199

6.10.4 测试数据及参考答案 204

6.11 过河 205

6.11.1 题目描述 205

6.11.2 问题分析 206

6.11.3 程序清单 207

6.11.4 测试数据及参考答案 208

第7章 搜索解题样例(二) 210

7.1 齿轮系统 210

7.1.1 题目描述 210

7.1.2 问题分析 211

7.1.3 程序清单 211

7.1.4 测试数据及参考答案 215

7.2 软件补丁 215

7.2.1 题目描述 215

7.2.3 程序清单 217

7.2.2 问题分析 217

7.2.4 测试数据及参考答案 221

7.3 自动计算机器 222

7.3.1 题目描述 222

7.3.2 问题分析 223

7.3.3 程序清单 224

7.3.4 测试数据及参考答案 228

7.4.1 题目描述 229

7.4 神奇的数列 229

7.4.2 问题分析 230

7.4.3 程序清单 230

7.4.4 测试数据及参考答案 232

7.5 分割方格 232

7.5.1 题目描述 232

7.5.2 问题分析 233

7.5.3 程序清单 235

7.6.1 题目描述 242

7.5.4 测试数据及参考答案 242

7.6 分离单词 242

7.6.2 问题分析 243

7.6.3 程序清单 244

7.6.4 测试数据及参考答案 248

7.7 填字游戏 249

7.7.1 题目描述 249

7.7.2 问题分析 250

7.7.3 程序清单 251

7.7.4 测试数据及参考答案 257

7.8 带宽 259

7.8.1 题目描述 259

7.8.2 问题分析 260

7.8.3 程序清单 261

7.8.4 测试数据及参考答案 266

7.9.2 问题分析 267

7.9.1 题目描述 267

7.9 聪明的耗子 267

7.9.3 程序清单 268

7.9.4 测试数据及参考答案 271

7.10 百慕大三角 273

7.10.1 题目描述 273

7.10.2 问题分析 274

7.10.3 程序清单 276

7.10.4 测试数据及参考答案 283

7.11 会餐问题 283

7.11.1 题目描述 283

7.11.2 问题分析 284

7.11.3 程序清单 284

7.11.4 测试数据及参考答案 288

参考文献 291

作者简介 292