注重体验与质量的电子书资源下载网站
分类于: 编程语言 其它
简介
算法竞赛宝典-基础算法艺术 豆 0.0分
资源最后更新于 2020-10-05 18:39:35
作者:张新华
出版社:清华大学出版社
出版日期:2016-01
ISBN:9787302409496
文件格式: pdf
简介· · · · · ·
本套书的第二部──基础算法艺术,重点介绍了各种基础算法的使用,如分治算法、贪心算法、枚举算法、动态规划算法等。书中的绝大多数题目都采用了“多向思考”、“一题多解”和“一题多变”的方式来解决。读者不仅可以通过随书光盘配备的简单测试数据验证所写程序的正确性,还可以根据书中标注的题目原始出处,访问相关的在线评测网站提交所写代码进行测试。需要注意的是,与多数教材从头读到尾的习惯不同的是,本书的各章节划分并不是严格按从难到易,从简到繁的顺序编排,而是各章节基本能做到独立阅读互不影响的。读者在阅读过程中,有时可根据需要翻到其他章节学习完相关内容后再返回本章节继续学习。此外,每一道题的各种算法按难易程度粗略的以★号表示,★号越多,表示难度越大,读者若遇到难度过大的题,不必硬“啃”,完全可以在学习完其他章节的相关内容后再来学习。
目录
第一章 分治算法 14
折半查找法 14
递归二分算法★ 14
非递归二分法★ 16
拓展与练习 17
魔法石的诱惑 18
分治算法★ 18
数学方法★ 19
拓展与练习 20
逃亡 21
分治算法★ 21
数学方法1★★ 22
数学方法2★★ 24
拓展与练习 25
快速幂运算 26
基本快速幂算法★ 27
位优化快速幂算法★ 28
拓展与练习 29
运动会 29
循环比赛★ 29
残缺棋盘★ 32
解一元三次方程 35
枚举法★ 36
二分法★ 37
拓展与练习 38
数的查找 38
第k小数1★ 38
第k小数2★ 43
第k小数3★ 45
拓展与练习 49
剔除多余括号 50
二分法★★ 51
非二分法★ 54
聪明的质检员 56
二分法+前序和★★ 57
拓展与练习 59
最接近点对问题 60
一维算法★★ 60
二维算法★★ 63
拓展与练习 66
第二章 递归算法 67
棋子移动 67
递归算法★ 68
拓展与练习 69
地盘划分 69
朴素递归算法★ 70
优化递归算法★ 71
拆分自然数 72
递归算法★ 73
回溯算法★ 74
分形图 75
分形图1★★ 75
分形图2★★ 78
拓展与练习 82
N皇后问题 83
递归算法1★ 84
递归算法2★ 88
递归算法3★★ 90
递归算法4★ 92
回溯算法★ 94
位运算法★★★ 95
拓展与练习 97
求子集 99
递归算法★ 99
位运算法★ 100
数字三角形 101
递归算法★ 102
记忆化搜索优化算法★ 103
深度优先搜索★ 104
位运算法★ 104
回溯算法★ 105
动态规划算法★ 107
滚动数组优化算法★ 108
非完美算法★ 109
拓展与练习 110
油桶问题 110
穷举法★ 111
递归算法★ 112
动态规划算法1★ 113
动态规划算法2★ 114
拓展与练习 115
传球游戏 115
递归搜索法★ 116
穷举法★ 117
递推算法★ 118
第三章 排列组合问题 120
全排列问题 120
非字典序递归算法★ 120
深搜字典序★ 122
位运算法★★ 124
STL模板法★ 127
火星人问题★ 128
拓展与练习 131
组合问题 132
组合公式法★ 132
递推法★ 133
递归算法★ 135
位运算法★★ 136
Jam的计数法★ 138
拓展与练习 140
乘法游戏 140
全排列法★★ 141
区间动态规划法★★ 143
邮票面值问题 144
排列组合法★★ 144
DFS+动规★★★ 146
第四章 高精度算法 149
被限制的加法★ 149
简单高精度加法★ 151
简单高精度减法★ 154
简单高精度乘法★★ 156
高精度幂 158
普通快速幂算法★★ 158
指针交换地址优化算法★★ 160
高精度分数 163
朴素算法★ 163
优化算法★★ 164
高精度阶乘 166
非递归式算法★★ 167
朴素高精度算法★ 169
优化算法1★ 169
优化算法2★ 171
优化算法3★★ 171
高精度数除以低精度数1 ★ 172
高精度数除以低精度数2★ 173
普通高精度数除以高精度数 175
普通算法★★★ 176
改进算法★★★ 180
万进制高精度加法★ 187
万进制高精度减法★ 190
万进制高精度乘法★★ 192
万进制高精度除法★★★ 193
组合数的高精度算法 198
算法1★ 198
算法2★ 199
算法3★★ 201
算法4★★★ 203
第五章 排序算法 205
一次查找两元素★ 205
常用排序法 206
直接插入排序法★ 206
选择排序法★ 208
朴素快速排序法★ 209
随机化快速排序法★ 211
简单计数排序法★ 212
稳定计数排序法★ 214
基数排序★ 215
希尔排序★ 219
归并排序法★ 221
各种排序算法的比较 223
紧急集合★ 223
求逆序对数 226
归并排序求逆序数★ 226
树状数组求逆序数★★★ 228
拓展与练习 231
第六章 穷举算法 233
火柴棒等式 233
穷举法★ 234
拓展与练习 235
加急密文★ 236
翻转棋盘 239
枚举+DFS★ 239
枚举+BFS+位运算★★ 241
拓展与练习 243
排队 243
穷举法★ 244
动态规划法★★ 245
选择客栈 245
朴素算法★ 247
优化算法1★ 247
优化算法2★ 248
时钟问题 249
普通枚举法★ 250
优化枚举法★★ 251
位运算法★★ 253
拓展与练习 255
快算24点 255
回溯算法★★ 255
全排列+枚举算法★★ 257
检测方法 260
推理练习 263
侦探推理★★★ 263
拓展与练习 269
第七章 贪心算法 272
删数问题★ 272
数列极差问题★ 273
不相交区间问题 275
电视节目安排★ 275
拓展与练习 277
区间选点问题 278
监测点★ 278
雷达问题★★ 280
广告问题★★ 282
区间覆盖问题 285
时空定位1★ 285
时空定位2★ 286
平均分配问题 289
均分纸牌★★ 289
作业调度问题 290
流水作业调度问题★ 290
赶作业★ 293
钓鱼★★ 295
田忌赛马★★ 298
普通贪心法 298
动态规划法 300
贪心+动规法 302
拓展与练习 304
第八章 递推算法 306
过河卒★ 306
数的计数 308
递推算法★ 308
递归算法★ 309
动态规划算法★ 311
储油点★ 311
挖地雷★ 313
偶数3的个数★ 315
布阵 316
方法一★ 317
方法二★ 318
方法三★ 319
方法四★ 320
极值问题★★ 321
区域划分问题★ 322
军事情报★ 323
密文传送★★ 324
汉诺塔问题 326
标准汉诺塔问题★ 326
双塔问题★ 328
四塔问题★ 330
妖兽特攻队★★ 331
平面分割问题 333
凸多边形的三角形剖分★★ 333
拓展与练习 336
实数数列 337
算法1★★★ 337
算法2★★★ 339
第九章 搜索算法 341
四色地图★ 341
迷宫问题 344
宽度优先搜索★ 345
宽度优先搜索STL版★ 348
深度优先搜索★ 349
深度优先搜索递归法★ 352
骑士遍历问题 354
骑士遍历初级版★ 354
骑士遍历普通版★ 357
骑士遍历优化版★★★ 359
拓展与练习 366
八数码问题 367
康托展开★ 368
康托展开逆运算★ 369
哈希函数★ 371
宽搜算法★ 372
双向宽度优先搜索★★ 374
双向宽度搜索+康托展开★★ 378
A*算法★★★ 382
IDA*算法★★ 386
拓展与练习 390
魔板问题 390
宽搜算法★★ 392
虫食算★★ 395
数独游戏★★ 399
拓展与练习 404
第十章 模拟算法 406
猫和老鼠★ 406
奶牛的命运★★ 409
世纪梭哈★★ 411
小球钟★★ 416
第十一章 动态规划 420
最长不下降子序列 420
机器人军团★ 420
抄近路★ 426
魔法石矿★ 428
拦截导弹★★ 431
楼兰宝藏★★ 433
和谐俱乐部★★ 435
滑雪★★ 440
拓展与练习 442
简单背包问题 444
0/1背包问题 446
动态规划算法★ 447
拓展与练习 449
货币问题 451
货币系统问题★ 451
拓展与练习 453
数字分组问题 454
数字分组1★ 454
数字分组2★ 456
完全背包问题 457
完全背包问题★ 457
完全背包算法的优化★ 458
0/1背包算法的优化★ 459
拓展与练习 460
多重背包问题 461
多重背包★ 461
太空梯★ 463
拓展与练习 465
混合背包问题 466
忙碌★★ 466
拓展与练习 469
理想收入问题 469
朴素动态规划★ 470
优化算法一★ 471
优化算法二★ 472
优化算法三★ 473
优化算法四★ 474
优化算法五★ 474
优化算法六★ 475
优化算法七★ 477
优化算法八★ 478
贪心算法★ 479
数的划分 480
枚举算法★ 480
递归算法★ 481
动规算法1★ 482
动规算法2★ 483
动规算法3★ 484
楼梯问题 485
动规算法1★ 486
动规算法2★ 486
动规算法3★ 487
动规算法4★ 488
动规算法5★ 489
动规算法6★ 489
母函数算法★★ 490
拓展与练习 491
合并问题 492
合并魔法石1★ 492
合并魔法石2★★ 496
多边形魔法阵★★ 502
能量项链★★ 506
路径问题 508
最短路径★ 508
最小交通费用问题★ 511
放置问题 514
书架问题1★ 514
书架问题2★ 516
安排车厢 ★ 518
唱片录制★ 520
双色马★ 525
拓展与练习 527
数字游戏 528
乘积最大★ 528
添加号问题★ 530
加减人生★ 533
模拟人生★ 535
矩阵连乘★ 538
拓展与练习 539
相遇问题 540
动规算法1★ 541
递归算法★ 543
宽度搜索算法★ 546
动规优化1★ 548
动规优化2★ 549
动规优化3★ 551
动规优化4★★ 554
动规优化5★★ 555
拓展与练习 558
最大连续子序列问题 560
最大连续子序列和★ 560
最大连续子序列积★★ 562
k个最大连续子序列和★ 564
子矩阵问题 565
二维最大子矩阵问题★★ 565
扩展最大子矩阵问题★★ 567
子矩阵变形问题★★ 570
子串问题 572
最长前缀★ 572
zipper★ 574
最长公共子串问题★★ 576
确定基因功能★★ 585
拓展与练习 588
最长公共上升子序列 588
基本算法★ 589
优化算法1★ 590
优化算法2★ 592
购物问题 594
购物问题★ 594
收购魔法石★ 596
商店购物★ 598
资源分配问题 600
机器分配★ 600
系统可靠性★ 602
邮局问题★ 604
快餐问题★ 605
切割能量棒★ 607
调度问题★ 610
分割问题 612
凸多边形三角划分 ★★ 612
凸多边形分割★★ 618
拓展与练习 621
双重动规 623
城市交通★★ 623
复杂的审批★★ 627
拓展与练习 631
多进程动规 632
方格取数★★ 632
3取方格数★★ 635
拓展与练习 637
状态压缩动态规划 638
猛兽军团1★★ 638
猛兽军团2★★ 645
炮兵阵地★★ 649
清扫计划★★ 653
拓展与练习 655
树型动态规划 657
加分二叉树★★ 657
宝藏★★ 660
选课★★★ 664
鸿门宴★★★ 667
拓展与练习 669
附录A C++语言使用参考 673
类和对象 673
类的继承 675
函数重载 676
操作符重载 677
显式类型转换 678
异常处理 681
名字空间 684
友员函数 685
内联函数 686
静态成员 686
附录B 标准模板库使用参考 688
vector向量容器 688
deque双端队列容器 690
list双向链表容器 691
set集合容器 693
multiset多重集合容器 694
map映照容器 694
multimap多重映照容器 697
stack堆栈容器 697
queue队列容器 698
priority_queue优先队列容器 699
adjacent_find查找相邻元素 700
find_first_of查找第一个匹配字符 701
count统计个数 701
堆排序 702
sort排序算法 702
归并算法merge 703
inplace_merge内部归并 704
stable_sort 稳定排序 704
lower_bound下确界 705
upper_bound上确界 706
折半搜索binary_search 706
Includes判断集合包含关系 707
集合操作 707
最值 708
产生组合数 709
附录C 常用在线评测网站 710
参考文献 711
折半查找法 14
递归二分算法★ 14
非递归二分法★ 16
拓展与练习 17
魔法石的诱惑 18
分治算法★ 18
数学方法★ 19
拓展与练习 20
逃亡 21
分治算法★ 21
数学方法1★★ 22
数学方法2★★ 24
拓展与练习 25
快速幂运算 26
基本快速幂算法★ 27
位优化快速幂算法★ 28
拓展与练习 29
运动会 29
循环比赛★ 29
残缺棋盘★ 32
解一元三次方程 35
枚举法★ 36
二分法★ 37
拓展与练习 38
数的查找 38
第k小数1★ 38
第k小数2★ 43
第k小数3★ 45
拓展与练习 49
剔除多余括号 50
二分法★★ 51
非二分法★ 54
聪明的质检员 56
二分法+前序和★★ 57
拓展与练习 59
最接近点对问题 60
一维算法★★ 60
二维算法★★ 63
拓展与练习 66
第二章 递归算法 67
棋子移动 67
递归算法★ 68
拓展与练习 69
地盘划分 69
朴素递归算法★ 70
优化递归算法★ 71
拆分自然数 72
递归算法★ 73
回溯算法★ 74
分形图 75
分形图1★★ 75
分形图2★★ 78
拓展与练习 82
N皇后问题 83
递归算法1★ 84
递归算法2★ 88
递归算法3★★ 90
递归算法4★ 92
回溯算法★ 94
位运算法★★★ 95
拓展与练习 97
求子集 99
递归算法★ 99
位运算法★ 100
数字三角形 101
递归算法★ 102
记忆化搜索优化算法★ 103
深度优先搜索★ 104
位运算法★ 104
回溯算法★ 105
动态规划算法★ 107
滚动数组优化算法★ 108
非完美算法★ 109
拓展与练习 110
油桶问题 110
穷举法★ 111
递归算法★ 112
动态规划算法1★ 113
动态规划算法2★ 114
拓展与练习 115
传球游戏 115
递归搜索法★ 116
穷举法★ 117
递推算法★ 118
第三章 排列组合问题 120
全排列问题 120
非字典序递归算法★ 120
深搜字典序★ 122
位运算法★★ 124
STL模板法★ 127
火星人问题★ 128
拓展与练习 131
组合问题 132
组合公式法★ 132
递推法★ 133
递归算法★ 135
位运算法★★ 136
Jam的计数法★ 138
拓展与练习 140
乘法游戏 140
全排列法★★ 141
区间动态规划法★★ 143
邮票面值问题 144
排列组合法★★ 144
DFS+动规★★★ 146
第四章 高精度算法 149
被限制的加法★ 149
简单高精度加法★ 151
简单高精度减法★ 154
简单高精度乘法★★ 156
高精度幂 158
普通快速幂算法★★ 158
指针交换地址优化算法★★ 160
高精度分数 163
朴素算法★ 163
优化算法★★ 164
高精度阶乘 166
非递归式算法★★ 167
朴素高精度算法★ 169
优化算法1★ 169
优化算法2★ 171
优化算法3★★ 171
高精度数除以低精度数1 ★ 172
高精度数除以低精度数2★ 173
普通高精度数除以高精度数 175
普通算法★★★ 176
改进算法★★★ 180
万进制高精度加法★ 187
万进制高精度减法★ 190
万进制高精度乘法★★ 192
万进制高精度除法★★★ 193
组合数的高精度算法 198
算法1★ 198
算法2★ 199
算法3★★ 201
算法4★★★ 203
第五章 排序算法 205
一次查找两元素★ 205
常用排序法 206
直接插入排序法★ 206
选择排序法★ 208
朴素快速排序法★ 209
随机化快速排序法★ 211
简单计数排序法★ 212
稳定计数排序法★ 214
基数排序★ 215
希尔排序★ 219
归并排序法★ 221
各种排序算法的比较 223
紧急集合★ 223
求逆序对数 226
归并排序求逆序数★ 226
树状数组求逆序数★★★ 228
拓展与练习 231
第六章 穷举算法 233
火柴棒等式 233
穷举法★ 234
拓展与练习 235
加急密文★ 236
翻转棋盘 239
枚举+DFS★ 239
枚举+BFS+位运算★★ 241
拓展与练习 243
排队 243
穷举法★ 244
动态规划法★★ 245
选择客栈 245
朴素算法★ 247
优化算法1★ 247
优化算法2★ 248
时钟问题 249
普通枚举法★ 250
优化枚举法★★ 251
位运算法★★ 253
拓展与练习 255
快算24点 255
回溯算法★★ 255
全排列+枚举算法★★ 257
检测方法 260
推理练习 263
侦探推理★★★ 263
拓展与练习 269
第七章 贪心算法 272
删数问题★ 272
数列极差问题★ 273
不相交区间问题 275
电视节目安排★ 275
拓展与练习 277
区间选点问题 278
监测点★ 278
雷达问题★★ 280
广告问题★★ 282
区间覆盖问题 285
时空定位1★ 285
时空定位2★ 286
平均分配问题 289
均分纸牌★★ 289
作业调度问题 290
流水作业调度问题★ 290
赶作业★ 293
钓鱼★★ 295
田忌赛马★★ 298
普通贪心法 298
动态规划法 300
贪心+动规法 302
拓展与练习 304
第八章 递推算法 306
过河卒★ 306
数的计数 308
递推算法★ 308
递归算法★ 309
动态规划算法★ 311
储油点★ 311
挖地雷★ 313
偶数3的个数★ 315
布阵 316
方法一★ 317
方法二★ 318
方法三★ 319
方法四★ 320
极值问题★★ 321
区域划分问题★ 322
军事情报★ 323
密文传送★★ 324
汉诺塔问题 326
标准汉诺塔问题★ 326
双塔问题★ 328
四塔问题★ 330
妖兽特攻队★★ 331
平面分割问题 333
凸多边形的三角形剖分★★ 333
拓展与练习 336
实数数列 337
算法1★★★ 337
算法2★★★ 339
第九章 搜索算法 341
四色地图★ 341
迷宫问题 344
宽度优先搜索★ 345
宽度优先搜索STL版★ 348
深度优先搜索★ 349
深度优先搜索递归法★ 352
骑士遍历问题 354
骑士遍历初级版★ 354
骑士遍历普通版★ 357
骑士遍历优化版★★★ 359
拓展与练习 366
八数码问题 367
康托展开★ 368
康托展开逆运算★ 369
哈希函数★ 371
宽搜算法★ 372
双向宽度优先搜索★★ 374
双向宽度搜索+康托展开★★ 378
A*算法★★★ 382
IDA*算法★★ 386
拓展与练习 390
魔板问题 390
宽搜算法★★ 392
虫食算★★ 395
数独游戏★★ 399
拓展与练习 404
第十章 模拟算法 406
猫和老鼠★ 406
奶牛的命运★★ 409
世纪梭哈★★ 411
小球钟★★ 416
第十一章 动态规划 420
最长不下降子序列 420
机器人军团★ 420
抄近路★ 426
魔法石矿★ 428
拦截导弹★★ 431
楼兰宝藏★★ 433
和谐俱乐部★★ 435
滑雪★★ 440
拓展与练习 442
简单背包问题 444
0/1背包问题 446
动态规划算法★ 447
拓展与练习 449
货币问题 451
货币系统问题★ 451
拓展与练习 453
数字分组问题 454
数字分组1★ 454
数字分组2★ 456
完全背包问题 457
完全背包问题★ 457
完全背包算法的优化★ 458
0/1背包算法的优化★ 459
拓展与练习 460
多重背包问题 461
多重背包★ 461
太空梯★ 463
拓展与练习 465
混合背包问题 466
忙碌★★ 466
拓展与练习 469
理想收入问题 469
朴素动态规划★ 470
优化算法一★ 471
优化算法二★ 472
优化算法三★ 473
优化算法四★ 474
优化算法五★ 474
优化算法六★ 475
优化算法七★ 477
优化算法八★ 478
贪心算法★ 479
数的划分 480
枚举算法★ 480
递归算法★ 481
动规算法1★ 482
动规算法2★ 483
动规算法3★ 484
楼梯问题 485
动规算法1★ 486
动规算法2★ 486
动规算法3★ 487
动规算法4★ 488
动规算法5★ 489
动规算法6★ 489
母函数算法★★ 490
拓展与练习 491
合并问题 492
合并魔法石1★ 492
合并魔法石2★★ 496
多边形魔法阵★★ 502
能量项链★★ 506
路径问题 508
最短路径★ 508
最小交通费用问题★ 511
放置问题 514
书架问题1★ 514
书架问题2★ 516
安排车厢 ★ 518
唱片录制★ 520
双色马★ 525
拓展与练习 527
数字游戏 528
乘积最大★ 528
添加号问题★ 530
加减人生★ 533
模拟人生★ 535
矩阵连乘★ 538
拓展与练习 539
相遇问题 540
动规算法1★ 541
递归算法★ 543
宽度搜索算法★ 546
动规优化1★ 548
动规优化2★ 549
动规优化3★ 551
动规优化4★★ 554
动规优化5★★ 555
拓展与练习 558
最大连续子序列问题 560
最大连续子序列和★ 560
最大连续子序列积★★ 562
k个最大连续子序列和★ 564
子矩阵问题 565
二维最大子矩阵问题★★ 565
扩展最大子矩阵问题★★ 567
子矩阵变形问题★★ 570
子串问题 572
最长前缀★ 572
zipper★ 574
最长公共子串问题★★ 576
确定基因功能★★ 585
拓展与练习 588
最长公共上升子序列 588
基本算法★ 589
优化算法1★ 590
优化算法2★ 592
购物问题 594
购物问题★ 594
收购魔法石★ 596
商店购物★ 598
资源分配问题 600
机器分配★ 600
系统可靠性★ 602
邮局问题★ 604
快餐问题★ 605
切割能量棒★ 607
调度问题★ 610
分割问题 612
凸多边形三角划分 ★★ 612
凸多边形分割★★ 618
拓展与练习 621
双重动规 623
城市交通★★ 623
复杂的审批★★ 627
拓展与练习 631
多进程动规 632
方格取数★★ 632
3取方格数★★ 635
拓展与练习 637
状态压缩动态规划 638
猛兽军团1★★ 638
猛兽军团2★★ 645
炮兵阵地★★ 649
清扫计划★★ 653
拓展与练习 655
树型动态规划 657
加分二叉树★★ 657
宝藏★★ 660
选课★★★ 664
鸿门宴★★★ 667
拓展与练习 669
附录A C++语言使用参考 673
类和对象 673
类的继承 675
函数重载 676
操作符重载 677
显式类型转换 678
异常处理 681
名字空间 684
友员函数 685
内联函数 686
静态成员 686
附录B 标准模板库使用参考 688
vector向量容器 688
deque双端队列容器 690
list双向链表容器 691
set集合容器 693
multiset多重集合容器 694
map映照容器 694
multimap多重映照容器 697
stack堆栈容器 697
queue队列容器 698
priority_queue优先队列容器 699
adjacent_find查找相邻元素 700
find_first_of查找第一个匹配字符 701
count统计个数 701
堆排序 702
sort排序算法 702
归并算法merge 703
inplace_merge内部归并 704
stable_sort 稳定排序 704
lower_bound下确界 705
upper_bound上确界 706
折半搜索binary_search 706
Includes判断集合包含关系 707
集合操作 707
最值 708
产生组合数 709
附录C 常用在线评测网站 710
参考文献 711