《算法竞赛宝典 基础算法艺术》PDF下载

  • 购买积分:20 如何计算积分?
  • 作  者:张新华编
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2016
  • ISBN:7302409498
  • 页数:716 页
图书介绍:通过一系列虚构魔法世界的冒险故事,巧妙地将算法设计包含其中,算法内容包括分治算法,递归算法,排列组合问题,高精度算法,排序算法,穷举算法,贪心算法,递推算法,搜索算法,模拟算法和动态规划算法等。更重要的是,每一道题都提出了若干种解决方案,以培养读者一题多解的思维能力。

第一章 分治算法 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