目 录
II
9.1 线性表(顺序结构) ............. 91
9.2 线性表(链式结构) ............. 91
9.3 栈 .......................... 93
9.4 队列 ......................... 94
9.5 二叉树 ....................... 95
9.6 并查集! ...................... 99
9.7 小结 ........................ 102
第十单元 查找与检索
............. 104
10.1 顺序查找 ................... 104
10.2 二分查找! .................. 104
10.3 查找第 k 小元素! ............. 105
10.4 二叉排序树 .................. 106
10.5 堆和优先队列* ............... 108
10.6 哈夫曼(Huffman)树 ......... 110
10.7 哈希(Hash)表 .............. 111
第十一单元 数学基础
............. 116
11.1 组合数学 ................... 116
11.2 组合数的计算! ............... 117
11.3 排列和组合的产生(无重集元素)! 117
11.4 排列和组合的产生(有重集元素) . 120
11.5 秦九韶算法 .................. 122
11.6 进制转换(正整数) ........... 123
11.7 高精度算法(压位存储)! ....... 123
11.8 快速幂! .................... 128
11.9 表达式求值 .................. 129
11.10 解线性方程组* .............. 133
第十二单元 数论算法
............. 135
12.1 同余的性质! ................. 135
12.2 最大公约数、最小公倍数! ....... 135
12.3 解不定方程 ax+by=c!* ....... 135
12.4 同余问题* .................. 136
12.5 素数和素数表 ................ 136
12.6 分解质因数 .................. 137
第十三单元 图与图论算法
.......... 139
13.1 图的实现 ................... 139
13.2 图的遍历 ................... 141
13.3 连通性问题 .................. 142
13.4 欧拉回路 [邻接矩阵] ......... 146
13.5 最小生成树(MST) ........... 147
13.6 单源最短路问题(SSSP 问题) ... 148
13.7 每两点间最短路问题(APSP 问题)!152
13.8 拓扑排序 ................... 152
13.9 关键路径 ................... 155
13.10 二分图初步 ................. 157
13.11 小结 ...................... 160
第十四单元
STL
简介
............. 164
14.1 STL 概述 ................... 164
14.2 常用容器 ................... 164
14.3 容器适配器 .................. 170
14.4 常用算法 ................... 171
14.5 迭代器 ..................... 175
14.6 示例:合并果子 .............. 175
附录
A
思想和技巧
............... 177
A.1 时间/空间权衡 ............... 177
A.2 试验、猜想及归纳 ............. 177
A.3 模型化 ..................... 177
A.4 随机化* .................... 178
A.5 动态化静态 .................. 178
A.6 前序和! .................... 179
A.7 状态压缩*................... 180
A.8 抽样测试法* ................. 182
A.9 离散化* .................... 183
A.10 Flood Fill* .............. 184
附录
B
调试
.................... 185
B.1 常见错误类型 ................ 185
B.2 调试过程.................... 185
B.3 调试功能.................... 185
B.4 符号 DEBUG 的应用 ............ 186
B.5 代码审查表 .................. 186
B.6 故障检查表 .................. 187
B.7 命令行和批处理* .............. 188
附录
C
竞赛经验和教训
............ 192
C.1 赛前两星期 .................. 192
C.2 赛前 30 分钟 ................. 192
C.3 解题表 ..................... 193
C.4 测试数据.................... 195
C.5 交卷前 5 分钟 ................ 196
C.6 避免偶然错误 ................ 196
C.7 骗分 ....................... 197
附录
D
学习建议
................. 198
D.1 学习方法.................... 198
D.2 学习能力.................... 198
D.3 关于清北学堂 ................ 198
附录
E
竞赛简介
................. 199
E.1 从 NOIP 到 IOI ............... 199
E.2 NOIP 简介 .................. 199
E.3 常用语 ..................... 201
E.4 第一次参加复赛…… ........... 202
附录
F
NOIP
复赛知识点分布
....... 204
附录
G
资料推荐
................. 205
G.1 书籍 ....................... 205
G.2 网站 ....................... 205
参考文献
....................... 206
计算机专业是朝阳还是夕阳?
........ 207
杜子德在
CCF NOI2012
开幕式上的讲话
209
多数奥赛金牌得主为何难成大器
...... 210