zoukankan      html  css  js  c++  java
  • 算法问题实战策略

    算法问题实战策略
    基本信息
    作者: (韩)具宗万
    译者: 崔盛一
    出版社:人民邮电出版社
    ISBN:9787115384621
    上架时间:2015-2-4
    出版日期:2015 年3月
    开本:16开
    页码:738
    版次:1-1

     



    内容简介
    算法问题实战策略
    本书收录程序设计竞赛经典试题,在解题过程中讲解各种算法设计技巧和数据结构,培养读者的解题能力。读者可亲自编写各章习题程序并获得评分,所有示例均附有解题过程及详细说明。
    本书主要内容:
    第一部分 开始解决问题
    第二部分 算法分析
    第三部分 算法设计范式
    第四部分 一些著名的算法
    第五部分 基本数据结构
    第六部分 树
    第七部分 图
    目录
    第一部分 开始解决问题
    第1章 解决问题与程序设计竞赛 4
    1.1 引言 4
    1.2 程序设计竞赛 4
    1.3 阅读本书的方法 7
    1.4 值得参加的程序设计竞赛 8
    1.5 对赛前准备工作的一些建议 9
    1.6 续读 12
    第2章 解决问题概述 13
    2.1 引言 13
    2.2 解决问题的过程 13
    2.3 解决问题的策略 17
    2.4 续读 26
    第3章 编码与调试 27
    3.1 引言:不要忽视编码的重要性 27
    3.2 编写优秀代码的原则 27
    3.3 常见失误 32
    3.4 调试与测试 39
    3.5 变量的取值范围 42
    3.6 理解实数型数据类型 46
    3.7 续读 55
    第二部分 算法分析
    第4章 分析算法的时间复杂度 60
    4.1 引言 60
    4.2 线性时间算法 62
    4.3 次线性时间算法 65
    4.4 指数时间算法 67
    4.5 时间复杂度 70
    4.6 推测执行时间 76
    4.7 计算复杂度类:P、NP、NP-完备 81
    4.8 续读 84
    第5章 算法正确性证明 85
    5.1 引言 85
    5.2 数学归纳法和循环不变式 86
    5.3 归谬法 90
    5.4 其他技巧 92
    5.5 续读 95
    第三部分 算法设计范式
    第6章 暴力解决法 99
    6.1 引言 99
    6.2 递归调用和穷举搜索法 100
    6.3 练习题:郊游(习题 ID:PICNIC,
    难度:低) 106
    6.4 解题:郊游 107
    6.5 练习题:盖游戏板(习题 ID:BOARDCOVER,难度:低) 109
    6.6 解题:盖游戏板 111
    6.7 优化问题 113
    6.8 练习题:时钟同步(习题 ID:
    CLOCKSYNC,难度:中) 116
    6.9 解题:时钟同步 117
    6.10 常见穷举搜索类型 119
    第7章 分治法 120
    7.1 引言 120
    7.2 练习题:四叉树问题(题目 ID:
    QUADTREE,难度:低) 130
    7.3 解题:四叉树问题 131
    7.4 练习题:切割篱笆(习题 ID:
    FENCE,难度:中) 134
    7.5 解题:切割篱笆 135
    7.6 练习题:粉丝见面会(题目 ID:FANMEETING,难度:高) 139
    7.7 解题:粉丝见面会 141
    第8章 动态规划法 143
    8.1 引言 143
    8.2 练习题:通配符(习题 ID:
    WILDCARD,难度:中) 151
    8.3 解题:通配符 152
    8.4 典型优化问题 156
    8.5 练习题:合并LIS(题目 ID:
    JLIS,难度:低) 163
    8.6 解题:合并LIS 164
    8.7 练习题:背诵圆周率(题目 ID:
    PI,难度:低) 166
    8.8 解题:背诵圆周率 167
    8.9 练习题:Quantization(题目 ID:
    QUANTIZE,难度:中) 169
    8.10 解题:Quantization 170
    8.11 所有可能的个数与概率 174
    8.12 练习题:非对称铺设(题目 ID:ASYMTILING,难度:低) 180
    8.13 解题:非对称铺设 181
    8.14 练习题:多联骨牌(题目 ID:
    POLY,难度:中) 183
    8.15 解题:多联骨牌 185
    8.16 练习题:逃狱的韩尼拔博士(题目 ID:NUMB3RS,难度:中) 187
    8.17 解题:逃狱的韩尼拔博士 189
    第9章 动态规划技巧 194
    9.1 计算优化问题的实际答案 194
    9.2 练习题:打包行李(题目 ID:
    PACKING,难度:中) 195
    9.3 解题:打包行李 197
    9.4 练习题:光学字符识别(题目 ID:
    OCR,难度:高) 199
    9.5 解题:光学字符识别 201
    9.6 计算第k个答案 204
    9.7 练习题:第k个最大递增子序列
    (题目 ID:KLIS,难度:高) 209
    9.8 解题:第k个最长递增子序列 210
    9.9 练习题:龙曲线(题目 ID:
    DRAGON,难度:中) 214
    9.10 解题:龙曲线 216
    9.11 对非整数型输入的制表 219
    9.12 练习题:韦布巴津(题目 ID:
    ZIMBABWE,难度:高) 224
    9.13 解题:韦布巴津 225
    9.14 练习题:恢复实验数据(题目 ID:RESTORE,难度:中) 230
    9.15 解题:恢复实验数据 231
    9.16 组合游戏 234
    9.17 练习题:数字游戏(题目 ID:NUMBERGAME,难度:低) 239
    9.18 解题:数字游戏 240
    9.19 练习题:方块游戏(题目 ID:BLOCKGAME,难度:中) 242
    9.20 解题:方块游戏 243
    9.21 迭代动态规划法 245
    9.22 练习题:回转寿司(题目 ID:
    SUSHI,难度:中) 249
    9.23 解题:回转寿司 250
    9.24 练习题:Genius(题目 ID:
    GENIUS,难度:中) 253
    9.25 解题:Genius 254
    9.26 续读 256
    第10章 贪心法 257
    10.1 引言 257
    10.2 练习题:加热便当(题目 ID:
    LUNCHBOX,难度:低) 264
    10.3 解题:加热便当 265
    10.4 练习题:合并字符串(题目 ID:
    STRJOIN,难度:中) 268
    10.5 解题:合并字符串 269
    10.6 练习题:米那斯雅诺(题目 ID:MINASTIRITH,难度:高) 273
    10.7 解题:米那斯雅诺 275
    第11章 组合搜索 281
    11.1 引言 281
    11.2 组合搜索的方法 283
    11.3 练习题:盖游戏板2(题目 ID:BOARDCOVER2,难度:低) 298
    11.4 解题:盖游戏板2 299
    11.5 练习题:患有严重过敏症的朋
    友们(题目 ID:ALLERGY,
    难度:中) 303
    11.6 解题:患有严重过敏症的朋友们 304
    11.7 练习题:数谜(题目 ID:
    KAKURO2,难度:中) 307
    11.8 解题:数谜 309
    11.9 续读 315
    第12章 将优化问题转换为决策
    问题求解 316
    12.1 引言 316
    12.2 练习题:南极基地(题目 ID:
    ARCTIC,难度:低) 320
    12.3 解题:南极基地 321
    12.4 练习题:加拿大旅行(题目 ID:CANADATRIP,难度:中) 323
    12.5 解题:加拿大旅行 324
    12.6 练习题:退选课程(题目 ID:WITHDRAWAL,难度:高) 326
    12.7 解题:退选课程 327
    第四部分 一些著名的算法
    第13章 数值分析 331
    13.1 引言 331
    13.2 二分法 331
    13.3 练习题:提高获胜率(题目 ID:
    RATIO,难度:低) 338
    13.4 解题:提高获胜率 339
    13.5 三叉搜索 341
    13.6 练习题:花粉化石(题目 ID:
    FOSSIL,难度:高) 346
    13.7 解题:花粉化石 347
    13.8 其他主题 351
    第14章 整数论 352
    14.1 引言 352
    14.2 素数 352
    14.3 练习题:密码486(题目 ID:
    PASS486,难度:中) 356
    14.4 解题:密码486 357
    14.5 欧几里得算法 360
    14.6 练习题:魔法药水(题目 ID:
    POTION,难度:中) 361
    14.7 解题:魔法药水 362
    14.8 模运算 364
    14.9 续读 366
    第15章 计算几何 367
    15.1 引言 367
    15.2 计算几何的工具 367
    15.3 相交、距离、面积 373
    15.4 练习题:弹球模拟(题目 ID:
    PINBALL,难度:高) 377
    15.5 解题:弹球模拟 379
    15.6 多边形 383
    15.7 练习题:金银岛(题目 ID:
    TREASURE,难度:高) 386
    15.8 解题:金银岛 387
    15.9 练习题:是呆子?不是呆子?
    (题目ID:NERDS,难度:中) 390
    15.10 解题:是呆子?不是呆子? 392
    15.11 计算几何算法设计范式 396
    15.12 常见失误与注意事项 403
    15.13 续读 404
    第五部分 基本数据结构
    第16章 位掩码 410
    16.1 引言 410
    16.2 利用位掩码实现集合 413
    16.3 位掩码应用示例 417
    16.4 练习题:毕业学期(题目 ID:GRADUATION,难度:中) 420
    16.5 解题:毕业学期 422
    16.6 续读 424
    第17章 部分和 425
    17.1 引言 425
    17.2 练习题:圣诞娃娃(题目 ID:
    CHRISTMAS,难度:中) 429
    17.3 解题:圣诞娃娃 430
    17.4 其他学习内容 432
    第18章 线性数据结构 433
    18.1 引言 433
    18.2 动态数组 433
    18.3 链表 437
    18.4 动态数组和链表的比较 440
    18.5 练习题:约瑟夫斯(题目 ID:
    JOSEPHUS,难度:低) 440
    18.6 解题:约瑟夫斯 441
    18.7 续读 442
    第19章 队列、栈以及双端队列 443
    19.1 引言 443
    19.2 队列、栈以及双端队列的实现方法 444
    19.3 队列与栈的应用 445
    19.4 练习题:不匹配括号(题目 ID:BRACKETS2,难度:低) 448
    19.5 解题:不匹配括号 449
    19.6 练习题:分析外星信号(题目 ID:
    ITES,难度:中) 450
    19.7 解题:分析外星信号 451
    第20章 字符串 455
    20.1 引言 455
    20.2 字符串检索 456
    20.3 练习题:宰河的保险箱(题目 ID:JAEHASAFE,难度:中) 466
    20.4 解题:宰河的保险箱 467
    20.5 后缀数组 468
    20.6 练习题:口头禅(题目 ID:
    HABIT,难度:中) 476
    20.7 解题:口头禅 477
    20.8 续读 478
    第六部分 树
    第21章 树的实现与遍历 481
    21.1 引言 481
    21.2 树的遍历 483
    21.3 练习题:变更树的遍历顺序
    (题目 ID:TRAVERSAL,
    难度:低) 484
    21.4 解题:变更树的遍历顺序 486
    21.5 练习题:要塞(题目 ID:
    FORTRESS,难度:中) 487
    21.6 解题:要塞 488
    第22章 二叉搜索树 493
    22.1 引言 493
    22.2 二叉搜索树的定义和操作 493
    22.3 时间复杂度分析与平衡二叉搜索树 496
    22.4 练习题:是呆子?不是呆子?2
    (题目ID:NERD2,难度:中) 496
    22.5 解题:是呆子?不是呆子?2 498
    22.6 直接实现平衡二叉搜索树:树堆 501
    22.7 练习题:反转插入排序(题目 ID:INSERTION,难度:中) 508
    22.8 解题:反转插入排序 509
    第23章 优先级队列和堆 511
    23.1 引言 511
    23.2 堆的定义与实现方法 512
    23.3 练习题:变化的中间值(题目 ID:RUNNINGMEDIAN,难度:低) 518
    23.4 解题:变化的中间值 519
    第24章 区间树 521
    24.1 区间树:区间相关问题解答 521
    24.2 练习题:登山路(题目 ID:
    MORDDR,难度:中) 527
    24.3 解题:登山路 528
    24.4 练习题:寻根问祖(题目 ID:FAMILYTREE,难度:高) 529
    24.5 解题:寻根问祖 530
    24.6 树状数组:快速而简单的区间和 533
    24.7 练习题:计算插入排序的时间
    (题目 ID:MEASURETIME,
    难度:中) 536
    24.8 解题:计算插入排序的时间 537
    第25章 互斥集合 541
    25.1 引言 541
    25.2 练习题:编辑器之争(题目 ID:EDITORWARS,难度:中) 546
    25.3 解题:编辑器之争 548
    第26章 字典树 553
    26.1 引言 553
    26.2 练习题:再见,谢谢所有的鱼
    (题目 ID:SOLONG,难度:中) 557
    26.3 解题:再见,谢谢所有的鱼 559
    26.4 利用字典树检索多重字符串 563
    26.5 练习题:安全终结者(题目 ID:
    NH,难度:高) 569
    26.6 解题:安全终结者 570
    第七部分 图
    第27章 图的表示方式及定义 576
    27.1 引言 576
    27.2 图的应用示例 579
    27.3 隐式图结构 580
    27.4 图的几种表示法 581
    第28章 图的深度优先搜索 585
    28.1 引言 585
    28.2 练习题:古语词典(习题 ID:DICTIONARY,难度:低) 590
    28.3 解题:古语词典 591
    28.4 欧拉回路 594
    28.5 练习题:有限单词接龙(题目 ID:WORDCHAIN,难度:低) 597
    28.6 解题:有限单词接龙 598
    28.7 理论背景及应用 602
    28.8 练习题:安装监控摄像头(题目 ID:GALLERY,难度:中) 613
    28.9 解题:安装监控摄像头 614
    28.10 练习题:安排会议室(题目 ID:MEETINGROOM,难度:高) 616
    28.11 解题:安排会议室 618
    第29章 图的宽度优先搜索 625
    29.1 引言 625
    29.2 练习题:排序游戏(题目 ID:
    SORTGAME,难度:中) 629
    29.3 解题:排序游戏 630
    29.4 练习题:儿童节(题目 ID:CHILDRENDAY,难度:高) 633
    29.5 解题:儿童节 634
    29.6 最短路径策略 637
    29.7 练习题:汉诺塔(题目 ID:
    HANOI4B,难度:中) 648
    29.8 解题:汉诺塔 650
    第30章 最短路径问题 653
    30.1 引言 653
    30.2 迪杰斯特拉最短路径算法 654
    30.3 练习题:信号路由(题目 ID:
    ROUTING,难度:低) 661
    30.4 解题:信号路由 662
    30.5 练习题:消防车(题目 ID:
    FIRETRUCKS,难度:中) 663
    30.6 解题:消防车 664
    30.7 练习题:铁人N项比赛(题目 ID:
    NTHLON,难度:高) 665
    30.8 解题:铁人N项比赛 667
    30.9 贝尔曼-福特最短路径算法 669
    30.10 练习题:时间旅行(题目 ID:
    TIMETRIP,难度:中) 674
    30.11 解题:时间旅行 675
    30.12 弗洛伊德多源最短路径算法 677
    30.13 练习题:检查酒驾(题目 ID:
    DRUNKEN,难度:中) 682
    30.14 解题:检查酒驾 684
    30.15 练习题:竞选承诺(题目 ID:
    PROMISES,难度:中) 685
    30.16 解题:竞选承诺 687
    第31章 最小生成树 689
    31.1 引言 689
    31.2 克鲁斯克尔最小生成树算法 690
    31.3 普里姆最小生成树算法 694
    31.4 练习题:局域网(题目 ID:LAN,
    难度:低) 697
    31.5 解题:局域网 698
    31.6 练习题:选定旅行路线(题目 ID:
    TPATH,难度:高) 699
    31.7 解题:选定旅行路线 700
    第32章 网络流 705
    32.1 引言 705
    32.2 福特-富尔克森算法 706
    32.3 网络建模 713
    32.4 练习题:操纵比赛(题目 ID:
    MATCHFIX,难度:中) 715
    32.5 解题:操纵比赛 717
    32.6 练习题:国家项目(题目 ID:
    PROJECTS,难度:高) 719
    32.7 解题:国家项目 720
    32.8 二分图匹配 723
    32.9 练习题:象(题目 ID:BISHOPS,
    难度:中) 729
    32.10 解题:象 730
    32.11 练习题:设置陷阱(题目 ID:
    TRAPCARD,难度:高) 732
    32.12 解题:设置陷阱 734
    32.13 其他学习内容 737

  • 相关阅读:
    mybatis基础学习3---特殊sql语句(备忘)
    5.dos网络配置命令,重新获取ip刷新dns
    Guarded Suspension设计模式
    多线程Future设计模式
    多线程不可变对象设计模式immutable
    多线程读写锁分离设计模式
    多个人过门引出线程安全问题
    库存管理系统项目总结
    简单认识C#
    数据类型,变量,与运算符
  • 原文地址:https://www.cnblogs.com/china-pub/p/4381201.html
Copyright © 2011-2022 走看看