第1章 算法概述
1.1 引言
1.1.1 算法的描述
1.1.2 算法的设计
1.2 算法的复杂性
1.2.1 时间复杂性
1.2.2 空间复杂性
1.3 大学生程序设计竞赛概述
1.4 程序设计在线测试题库
第2章 数据结构和标准模板库
2.1 栈
2.2 向量
2.3 映射
2.4 列表
2.5 集合
2.6 队列
2.7 优先队列
2.8 ZOJ1004AnagramsbyStack
2.9 ZOJ1094MatrixChainMultiplication
2.1 0ZOJ1011NTA
2.1 1ZOJ1062TreesMadetoOrder
2.1 2ZOJ1097CodetheTree
2.1 3ZOJ1156UnscramblingImages
2.1 4ZOJ1167TreesontheLevel
2.1 5ZOJ1016Parencodings
2.1 6ZOJ1944TreeRecovery
2.1 7ZOJ2104LettheBalloonRise
上机练习题
第3章 递归与分治策略
3.1 递归算法
3.1.1 Fibonacci数列
3.1.2 集合的全排列问题
3.1.3 整数划分问题
3.2 分治策略
3.2.1 分治法的基本步骤
3.2.2 分治法的适用条件
3.2.3 二分搜索技术
3.2.4 循环赛日程表
3.2.5 棋盘覆盖问题
3.2.6 选择问题
3.2.7 输油管道问题
3.2.8 半数集问题
3.2.9 整数因子分解
3.2.1 0取余运算
3.3 BigString
上机练习题
第4章 动态规划
4.1 矩阵连乘积问题
4.1.1 分析最优解的结构
4.1.2 建立递归关系
4.1.3 计算最优值
4.1.4 构造最优解
4.2 动态规划算法的基本要素
4.2.1 最优子结构
4.2.2 重叠子问题
4.2.3 备忘录方法
4.3 最长公共子序列
4.3.1 最长公共子序列的结构
4.3.2 子问题的递归结构
4.3.3 计算最优值
4.3.4 构造最长公共子序列
4.4 最大子段和
4.5 01背包问题
4.5.1 递归关系分析
4.5.2 算法实现
4.6 最长单调递增子序列
4.7 数字三角形问题
4.8 ZOJ1013GreatEquipment
4.9 ZOJ1027HumanGeneFunctions
4.1 0ZOJ1074TotheMax
4.1 1ZOJ1093MonkeyandBanana
4.1 2ZOJ1100MondriaansDream
4.1 3ZOJ1102PhylogeneticTreesInherited
4.1 4ZOJ1107FatMouseandCheese
4.1 5ZOJ1108FatMousesSpeed
4.1 6ZOJ1132Railroad
4.1 7ZOJ1147FormattingText
4.1 8ZOJ1149Dividing
4.1 9ZOJ1163TheStaircases
4.2 0ZOJ1183SchedulingLectures
4.2 1ZOJ1196FastFood
4.2 2ZOJ1206WintheBonus
4.2 3ZOJ1227FreeCandies
4.2 4ZOJ1234Chopsticks
上机练习题
第5章 贪心算法
5.1 活动安排问题
5.2 贪心算法的理论基础
5.2.1 贪心选择性质
5.2.2 最优子结构性质
5.2.3 贪心算法的求解过程
5.3 背包问题
5.4 最优装载问题
5.5 单源最短路径
5.6 最小生成树
5.6.1 最小生成树的性质
5.6.2 Prim算法
5.6.3 Kruskal算法
5.7 删数问题
5.7.1 问题的贪心选择性质
5.7.2 问题的最优子结构性质
5.8 多处最优服务次序问题
5.8.1 问题的贪心选择性质
5.8.2 问题的最优子结构性质
5.9 ZOJ1012 Mainframe
5.10 ZOJ1025 WoodenSticks
5.11 ZOJ1029 MovingTables
5.12 ZOJ1076 GeneAssembly
5.13 ZOJ1161 GoneFishing
5.14 ZOJ1171 SortingthePhotos
5.15 ZOJ2109 FatMouse Trade
上机练习题
第6章 回溯算法
6.1 回溯算法的理论基础
6.1.1 问题的解空间
6.1.2 回溯法的基本思想
6.1.3 子集树与排列树
6.2 装载问题
6.3 01背包问题
6.4 图的m着色问题
6.5 n皇后问题
6.6 旅行商问题
6.7 流水作业调度问题
6.8 子集和问题
6.9 ZOJ1145DreisamEquations
6.1 0ZOJ1157APlugforUNIX
6.1 1ZOJ1166AnagramChecker
6.1 2ZOJ1213LumberCutting
上机练习题
第7章 分支限界算法
7.1 分支限界算法的基本理论
7.1.1 分支限界算法策略
7.1.2 分支结点的选择
7.1.3 提高分支限界算法的效率
7.1.4 限界函数
7.2 单源最短路径问题
7.3 装载问题
7.4 01背包问题
7.5 旅行商问题
7.6 ZOJ1136Multiple
7.7 回溯算法与分支限界算法的比较上机练习题
第8章 图的搜索算法
8.1 图的深度优先搜索遍历
8.2 ZOJ1002 FireNet
8.3 ZOJ1008 GnomeTetravex
8.4 ZOJ1047 ImagePerimeters
8.5 ZOJ1084 ChannelAllocation
8.6 ZOJ1142 Maze
8.7 ZOJ1190 OptimalPrograms
8.8 ZOJ1191 TheDieIsCast
8.9 ZOJ1204 AdditiveEquations
8.1 0 ZOJ1245 Triangles
8.11 ZOJ2100 Seeding
8.12 图的广度优先搜索遍历
8.13 ZOJ1055 Oh,ThoseAchinFeet
8.14 ZOJ1079 RoboticJigsaw
8.15 ZOJ1085 AlienSecurity
8.16 ZOJ1103 HikeonaGraph
8.17 ZOJ1148 TheGame
8.18 ZOJ1217 Eight
8.19 ZOJ1091 KnightMoves
上机练习题
参考文献
· · · · · · (
收起)