第1章 从零开始 1
一、机试的意义 1
二、机试的形式 1
三、评判结果 3
四、复杂度的估计 4
五、OJ的使用 5
总结 6
第2章 经典入门 7
一、排序 7
二、日期类问题 14
三、Hash的应用 21
四、排版题 25
五、查找 30
六、贪心算法 36
总结 41
第3章 数据结构 42
一、栈的应用 42
二、哈夫曼树 48
三、二叉树 50
四、二叉排序树 55
总结 61
第4章 数学问题 62
一、%运算符 62
二、数位拆解 64
三、进制转换 67
四、最大公约数(GCD) 71
五、最小公倍数(LCM) 74
六、素数筛法 75
七、分解素因数 79
八、二分求幂 85
九、高精度整数 89
总结 98
第5章 图论 99
一、预备知识 99
二、并查集 103
三、最小生成树(MST) 110
四、最短路径 116
五、拓扑排序 126
总结 130
第6章 搜索 131
一、枚举 131
二、广度优先搜索(BFS) 133
三、递归 143
四、递归的应用 145
五、深度优先搜索(DFS) 151
总结 155
第7章 动态规划 156
一、递推求解 156
二、最长递增子序列(LIS) 159
三、最长公共子序列(LCS) 162
四、状态与状态转移方程 164
五、动态规划问题分析举例 165
六、背包 171
总结 181
第8章 其他技巧 182
一、标准模板库(STL) 182
二、滚动数组 189
三、调试技巧 191
四、补充技巧 192
五、最后的提醒 195
总结 195