第一章 分治算法 1
折半查找法 1
递归二分算法 2
非递归二分法 3
拓展与练习 4
魔法石的诱惑 5
分治算法 5
数学方法 7
拓展与练习 8
逃亡 8
分治算法 9
数学方法1 10
数学方法2 11
拓展与练习 12
快速幂运算 13
基本快速幂算法 13
位优化快速幂算法 14
拓展与练习 16
运动会 16
循环比赛 16
残缺棋盘 19
解一元三次方程 22
枚举法 23
二分法 23
拓展与练习 25
数的查找 25
第k小数1 25
第k小数2 30
第k小数3 32
拓展与练习 37
剔除多余括号 37
二分法 38
非二分法 41
聪明的质检员 44
二分法+前序和 45
拓展与练习 47
最接近点对问题 48
一维算法 48
二维算法 51
拓展与练习 54
第二章 递归算法 55
棋子移动 55
递归算法 56
拓展与练习 57
地盘划分 57
朴素递归算法 58
优化递归算法 59
拆分自然数 60
递归算法 61
回溯算法 61
分形图 63
分形图1 63
分形图2 66
拓展与练习 70
N皇后问题 71
递归算法1 72
递归算法2 76
递归算法3 77
递归算法4 79
回溯算法 81
位运算法 82
拓展与练习 84
求子集 85
递归算法 86
位运算法 87
数字三角形 88
递归算法 88
记忆化搜索优化算法 89
深度优先搜索算法 90
位运算法 91
回溯算法 92
动态规划算法 94
滚动数组优化算法 95
非完美算法 96
拓展与练习 97
油桶问题 97
穷举法 97
递归算法 98
动态规划算法1 99
动态规划算法2 100
拓展与练习 102
传球游戏 102
递归搜索法 103
穷举法 104
递推算法 105
第三章 排列组合问题 107
全排列问题 107
非字典序递归算法 108
深搜字典序 109
位运算法 111
STL模板法 113
火星人问题 114
拓展与练习 118
组合问题 118
组合公式法 119
递推法 120
递归算法 121
位运算法 122
Jam的计数法 124
拓展与练习 125
乘法游戏 126
全排列法 126
区间动态规划法 128
邮票面值问题 129
排列组合法 130
DFS+动规 132
第四章 高精度算法 135
被限制的加法 135
简单高精度加法 137
简单高精度减法 141
简单高精度乘法 143
高精度幂 144
普通快速幂算法 145
指针交换地址优化算法 147
高精度分数 149
朴素算法 150
优化算法 151
高精度阶乘 153
非递归式算法 154
朴素高精度算法 156
优化算法1 156
优化算法2 158
优化算法3 158
高精度数除以低精度数1 159
高精度数除以低精度数2 160
普通高精度数除以高精度数 163
普通算法 163
改进算法 167
万进制高精度加法 175
万进制高精度减法 178
万进制高精度乘法 180
万进制高精度除法 182
组合数的高精度算法 187
算法1 187
算法2 188
算法3 190
算法4 193
第五章 排序算法 194
一次查找两元素 194
常用排序法 195
直接插入排序法 196
选择排序法 197
朴素快速排序法 198
随机化快速排序法 200
简单计数排序法 202
稳定计数排序法 203
基数排序法 204
希尔排序法 208
归并排序法 210
各种排序算法的比较 211
紧急集合 212
求逆序对数 215
归并排序求逆序对数 215
树状数组求逆序对数 217
拓展与练习 220
第六章 穷举算法 222
火柴棒等式 222
穷举法 223
拓展与练习 224
加急密文 225
翻转棋盘 228
枚举+DFS 229
枚举+BFS+位运算 231
拓展与练习 232
排队 233
穷举法 234
动态规划法 234
选择客栈 235
朴素算法 236
优化算法1 237
优化算法2 238
时钟问题 239
普通枚举法 240
优化枚举法 241
位运算法 243
拓展与练习 245
快算24点 245
回溯算法 245
全排列+枚举算法 247
检测方法 251
推理练习 254
侦探推理 254
拓展与练习 260
第七章 贪心算法 262
删数问题 262
数列极差问题 264
不相交区间问题 266
电视节目安排 266
拓展与练习 268
区间选点问题 268
监测点 268
雷达问题 270
广告问题 273
区间覆盖问题 276
时空定位1 276
时空定位2 277
平均分配问题 280
均分纸牌 280
作业调度问题 282
流水作业调度问题 282
赶作业 285
钓鱼 287
田忌赛马 290
普通贪心法 291
动态规划法 293
贪心+动规法 295
拓展与练习 297
第八章 递推算法 298
过河卒 298
数的计数 300
递推算法 300
递归算法 301
动态规划算法 302
储油点 303
挖地雷 304
偶数3的个数 306
布阵 308
方法一 308
方法二 310
方法三 310
方法四 311
极值问题 312
区域划分问题 313
军事情报 314
密文传送 316
汉诺塔问题 318
标准汉诺塔问题 318
双塔问题 319
四塔问题 321
M塔问题 323
妖兽特攻队 323
平面分割问题 325
凸多边形的三角形剖分 325
拓展与练习 328
实数数列 328
算法1 328
算法2 331
第九章 搜索算法 333
四色地图 333
迷宫问题 336
宽度优先搜索 337
宽度优先搜索STL版 340
深度优先搜索 342
深度优先搜索递归法 344
骑士遍历问题 346
骑士遍历初级版 346
骑士遍历普通版 350
骑士遍历优化版 352
拓展与练习 357
八数码问题 358
康托展开 358
康托展开逆运算 360
哈希函数 362
宽搜算法 363
双向宽度优先搜索 365
双向宽度搜索+康托展开 370
A算法 373
IDA*算法 378
拓展与练习 382
魔板问题 383
宽搜算法 384
虫食算 387
数独游戏 392
拓展与练习 397
第十章 模拟算法 399
猫和老鼠 399
奶牛的命运 402
世纪梭哈 405
小球钟 411
第十一章 动态规划 415
最长不下降子序列 415
机器人军团 415
抄近路 421
魔法石矿 422
拦截导弹 426
楼兰宝藏 427
和谐俱乐部 430
滑雪 436
拓展与练习 438
简单背包问题 439
枚举算法 440
递归算法 441
0/1背包问题 442
动态规划算法 442
拓展与练习 444
货币问题 446
货币系统问题 446
拓展与练习 448
数字分组问题 449
数字分组1 449
数字分组2 451
完全背包问题 452
完全背包问题 452
完全背包算法的优化 453
0/1背包算法的优化 454
拓展与练习 455
多重背包问题 456
多重背包 456
太空梯 459
拓展与练习 460
混合背包问题 461
忙碌 461
拓展与练习 464
理想收入问题 464
朴素动态规划 465
优化算法1 466
优化算法2 467
优化算法3 468
优化算法4 469
优化算法5 470
优化算法6 471
优化算法7 473
优化算法8 474
贪心算法 475
数的划分 476
枚举算法 476
递归算法 478
动规算法1 478
动规算法2 479
动规算法3 480
楼梯问题 481
动规算法1 482
动规算法2 483
动规算法3 483
动规算法4 484
动规算法5 484
动规算法6 485
母函数算法 486
拓展与练习 487
合并问题 488
合并魔法石1 488
合并魔法石2 491
多边形魔法阵 498
能量项链 502
路径问题 504
最短路径 504
最小交通费用问题 507
放置问题 510
书架问题1 510
书架问题2 512
安排车厢 514
唱片录制 516
双色马 521
拓展与练习 523
数字游戏 524
乘积最大 524
添加号问题 527
加减人生 530
模拟人生 533
矩阵连乘 535
拓展与练习 537
相遇问题 537
动规算法1 538
递归算法 541
宽度搜索算法 544
动规优化1 545
动规优化2 547
动规优化3 549
动规优化4 551
动规优化5 552
拓展与练习 554
最大连续子序列问题 556
最大连续子序列和 556
最大连续子序列积 559
k个最大连续子序列和 560
子矩阵问题 562
二维最大子矩阵问题 562
扩展最大子矩阵问题 564
子矩阵变形问题 567
子串问题 569
最长前缀 569
zipper 572
最长公共子串问题 574
确定基因功能 583
拓展与练习 587
最长公共上升子序列 587
优化算法1 589
优化算法2 591
购物问题 593
购物问题 593
收购魔法石 595
商店购物 597
资源分配问题 600
机器分配 600
系统可靠性 602
邮局问题 604
快餐问题 606
切割能量棒 608
调度问题 610
分割问题 612
凸多边形三角划分 612
凸多边形分割 619
拓展与练习 621
双重动规 623
城市交通 623
复杂的审批 628
拓展与练习 632
多进程动规 633
方格取数 633
3取方格数 636
拓展与练习 637
状态压缩动态规划 638
猛兽军团1 638
猛兽军团2 646
炮兵阵地 650
清扫计划 653
拓展与练习 655
树型动态规划 657
加分二叉树 657
宝藏 660
选课 664
鸿门宴 667
拓展与练习 670
附录A C++语言使用参考 673
类和对象 673
类的继承 675
函数重载 676
操作符重载 677
显式类型转换 679
异常处理 682
名字空间 685
友员函数 686
内联函数 687
静态成员 688
附录B标准模板库使用参考 690
vector向量容器 690
deque双端队列容器 692
list双向链表容器 693
set集合容器 696
multiset多重集合容器 697
map映照容器 698
multimap多重映照容器 700
stack堆栈容器 701
queue队列容器 702
priority_queue优先队列容器 702
adjacent_find查找相邻元素 704
find_first_of查找第一个匹配字符 705
count统计个数 705
堆排序 706
sort排序算法 707
归并算法merge 707
inplace_merge内部归并 708
stable_ sort稳定排序 709
lower bound下确界 710
upper_ bound上确界 710
折半搜索binary_search 711
Includes判断集合包含关系 711
集合操作 712
最值 712
产生组合数 713
附录C常用在线评测网站 715
参考文献 716