挑战程序设计竞赛(第2版)
《挑战程序设计竞赛(第2版)》是2013年人民邮电出版社出版发行的图书,作者是秋叶拓哉 ,岩田阳一,北川宜稔。
基本信息
- 书名
挑战程序设计竞赛(第2版)
- 作者
秋叶拓哉 岩田阳一 北川宜稔
- 译者
巫泽俊 庄俊元 李津羽
- ISBN
9787115320100
- 页数
414
- 出版社
人民邮电出版社
- 出版时间
2013 年7月
- 开本
16开
作者简介
秋叶拓哉,google code jam 2010 第9名;acm-icpc world finals 2012 第11名;topcoder open 2012 algorithm 第4名,昵称iwi岩田阳一,google code jam 2009 第3名;topcoder open 2010 marathon 冠军;ipsc 2010 个人组 冠军,昵称wata北川宜稔,acm-icpc world finals 2010第16名,昵称kita_masa巫泽俊,acm-icpc world finals 2009 第6名;acm-icpc world finals 2011 冠军;google code jam 2012 第7名,昵称watashi和rejudge庄俊元,acm-icpc asia phuket regional 2011 冠军;2012年跻身acm-icpc world finals以及百度astar总决赛,昵称navi和navimoe李津羽,浙江大学2011级计算机系博士生,在浙大cad&cg实验室从事科研工作
内容简介
《挑战程序设计竞赛(第2版)》对程序设计竞赛中的基础算法和经典问题进行了汇总,分为准备篇、初级篇、中级篇与高级篇4章。作者结合自己丰富的参赛经验,对严格筛选的110 多道各类试题进行了由浅入深、由易及难的细致讲解,并介绍了许多实用技巧。每章后附有习题,供读者练习,巩固所学。《挑战程序设计竞赛(第2版)》适合程序设计人员、程序设计竞赛爱好者以及高校计算机专业师生阅读。
目录
《挑战程序设计竞赛(第2版)》
第1章 蓄势待发——准备篇 11.1 何谓程序设计竞赛 21.2 最负盛名的程序设计竞赛 51.2.1 世界规模的大赛——google code jam(gcj) 51.2.2 向高排名看齐!——topcoder51.2.3 历史最悠久的竞赛—— acm-icpc 61.2.4 面向中学生的信息学奥林匹克竞赛——joi-ioi 61.2.5 通过网络自动评测——online judge(oj) 61.3 本书的使用方法 71.3.1 本书所涉及的内容 71.3.2 所用的编程语言 71.3.3 题目描述的处理 71.3.4 程序结构 71.3.5 练习题 81.3.6 读透本书后更上一层楼的练习方法 81.4 如何提交解答 91.4.1 poj的提交方法 91.4.2 gcj的提交方法 111.5 以高效的算法为目标 15
.1.5.1 什么是复杂度 151.5.2 关于运行时间 151.6 轻松热身 161.6.1 先从简单题开始 161.6.2poj的题目ants 181.6.3 难度增加的抽签问题 20第2章 初出茅庐——初级篇 252.1 最基础的“穷竭搜索” 262.1.1递归函数262.1.2 栈 272.1.3 队列 282.1.4深度优先搜索292.1.5宽度优先搜索332.1.6 特殊状态的枚举 372.1.7 剪枝 382.2 一往直前!贪心法 392.2.1 硬币问题 392.2.2 区间问题 402.2.3字典序最小问题 432.2.4 其他例题 452.3 记录结果再利用的“动态规划” 512.3.1记忆化搜索与动态规划 512.3.2 进一步探讨递推关系 572.3.3 有关计数问题的dp 662.4 加工并存储数据的数据结构 702.4.1 树和二叉树 702.4.2优先队列和堆 712.4.3二叉搜索树772.4.4并查集842.5 它们其实都是“图” 912.5.1 图是什么 912.5.2 图的表示 942.5.3 图的搜索 972.5.4最短路问题992.5.5最小生成树1052.5.6 应用问题 1072.6 数学问题的解题窍门 1132.6.1辗转相除法1132.6.2 有关素数的基础算法 1172.6.3模运算1212.6.4快速幂运算 1222.7 一起来挑战gcj的题目(1) 1252.7.1 minimum scalar product 1252.7.2 crazy rows 1272.7.3 bribe the prisoners 1292.7.4 millionaire 132第3章 出类拔萃——中级篇 1373.1 不光是查找值!“二分搜索” 1383.1.1 从有序数组中查找某个值 1383.1.2 假定一个解并判断是否可行 1403.1.3 最大化最小值 1423.1.4 最大化平均值 1433.2 常用技巧精选(一) 1463.2.1 尺取法 1463.2.2 反转(开关问题) 1503.2.3 弹性碰撞 1583.2.4 折半枚举(双向搜索) 1603.2.5 坐标离散化1643.3 活用各种数据结构 1673.3.1线段树1673.3.2 binary indexed tree 1743.3.3 分桶法和平方分割 1833.4 熟练掌握动态规划1913.4.1 状态压缩dp 1913.4.2 矩阵的幂 1993.4.3 利用数据结构高效求解 2063.5 借助水流解决问题的网络流2093.5.1 最大流 2093.5.2最小割2123.5.3二分图匹配2173.5.4 一般图匹配 2203.5.5 匹配、边覆盖、独立集和顶点覆盖 2213.5.6 最小费用流 2223.5.7 应用问题 2283.6 与平面和空间打交道的计算几何 2503.6.1 计算几何基础 2503.6.2 极限情况 2553.6.3 平面扫描 2583.6.4凸包2603.6.5数值积分2633.7 一起来挑战gcj的题目(2) 2673.7.1 numbers 2673.7.2 no cheating 2693.7.3 stock charts 2713.7.4 watering plants 2733.7.5 number sets 2783.7.6 wi-fi towers 280第4章 登峰造极——高级篇 2854.1 更加复杂的数学问题 2864.1.1 矩阵 2864.1.2 模运算的世界 2914.1.3 计数 2954.1.4 具有对称性的计数 3004.2 找出游戏的必胜策略 3054.2.1 游戏与必胜策略 3054.2.2 nim 3114.2.3 grundy数 3154.3 成为图论大师之路 3204.3.1强连通分量分解 3204.3.2 2-sat 3244.3.3 lca 3284.4 常用技巧精选(二) 3354.4.1 栈的运用 3354.4.2双端队列的运用 3374.4.3 倍增法 3454.5 开动脑筋智慧搜索 3504.5.1 剪枝 3504.5.2 a*与ida* 3564.6 划分、解决、合并:分治法3594.6.1 数列上的分治法 3594.6.2 树上的分治法 3604.6.3 平面上的分治法 3644.7 华丽地处理字符串 3684.7.1 字符串上的动态规划算法 3684.7.2 字符串匹配 3734.7.3后缀数组3784.8 一起来挑战gcj的题目(3) 3874.8.1 mine layer 3874.8.2 year of more code jam 3924.8.3 football team 3954.8.4 endless knight 3994.8.5 the year of code jam 403本书中未涉及的拓展主题 408书中例题列表 411参考文献 4131
参考资料
- 1《挑战程序设计竞赛(第2版)》互动书店(引用日期 2013-07-09)