挑战程序设计竞赛(第2版)pdf

下载地址:网盘下载

 

 

 

内容简介  · · · · · ·

作者简介  · · · · · ·

★秋叶拓哉

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实验室从事科研工作

目录  · · · · · ·

译者序
前言
第1章 蓄势待发——准备篇
1.1  何谓程序设计竞赛
1.2  最负盛名的程序设计竞赛
1.2.1  世界规模的大赛——Google Code Jam(GCJ)
1.2.2  向高排名看齐!——TopCoder
1.2.3  历史最悠久的竞赛—— ACM-ICPC
1.2.4  面向中学生的信息学奥林匹克竞赛——JOI-IOI
1.2.5  通过网络自动评测——Online Judge(OJ)
1.3  本书的使用方法
1.3.1  本书所涉及的内容
1.3.2  所用的编程语言
1.3.3  题目描述的处理
1.3.4  程序结构
1.3.5  练习题
1.3.6  读透本书后更上一层楼的练习方法
1.4  如何提交解答
1.4.1  POJ的提交方法
1.4.2  GCJ的提交方法
1.5  以高效的算法为目标
1.5.1  什么是复杂度
1.5.2  关于运行时间
1.6  轻松热身
1.6.1  先从简单题开始
1.6.2  POJ的题目Ants
1.6.3  难度增加的抽签问题
阅读
第2章 初出茅庐——初级篇
2.1  最基础的“穷竭搜索”
2.1.1  递归函数
2.1.2  栈
2.1.3  队列
2.1.4  深度优先搜索
2.1.5  宽度优先搜索
2.1.6  特殊状态的枚举
2.1.7  剪枝
2.2  一往直前!贪心法
2.2.1  硬币问题
2.2.2  区间问题
2.2.3  字典序最小问题
2.2.4  其他例题
2.3  记录结果再利用的“动态规划”
2.3.1  记忆化搜索与动态规划
2.3.2  进一步探讨递推关系
2.3.3  有关计数问题的DP
2.4  加工并存储数据的数据结构
2.4.1  树和二叉树
2.4.2  优先队列和堆
2.4.3  二叉搜索树
2.4.4  并查集
2.5  它们其实都是“图”
2.5.1  图是什么
2.5.2  图的表示
2.5.3  图的搜索
2.5.4  最短路问题
2.5.5  最小生成树
2.5.6  应用问题
2.6  数学问题的解题窍门
2.6.1  辗转相除法
2.6.2  有关素数的基础算法
2.6.3  模运算
2.6.4  快速幂运算
2.7  一起来挑战GCJ的题目(1)
2.7.1  Minimum Scalar Product
2.7.2  Crazy Rows
2.7.3  Bribe the Prisoners
2.7.4  Millionaire
阅读
第3章 出类拔萃——中级篇
3.1  不光是查找值!“二分搜索”
3.1.1  从有序数组中查找某个值
3.1.2  假定一个解并判断是否可行
3.1.3  最大化最小值
3.1.4  最大化平均值
3.2  常用技巧精选(一)
3.2.1  尺取法
3.2.2  反转(开关问题)
3.2.3  弹性碰撞
3.2.4  折半枚举(双向搜索)
3.2.5  坐标离散化
3.3  活用各种数据结构
3.3.1  线段树
3.3.2  Binary Indexed Tree
3.3.3  分桶法和平方分割
3.4  熟练掌握动态规划
3.4.1  状态压缩DP
3.4.2  矩阵的幂
3.4.3  利用数据结构高效求解
3.5  借助水流解决问题的网络流
3.5.1  最大流
3.5.2  最小割
3.5.3  二分图匹配
3.5.4  一般图匹配
3.5.5  匹配、边覆盖、独立集和顶点覆盖
3.5.6  最小费用流
3.5.7  应用问题
3.6  与平面和空间打交道的计算几何
3.6.1  计算几何基础
3.6.2  极限情况
3.6.3  平面扫描
3.6.4  凸包
3.6.5  数值积分
3.7  一起来挑战GCJ的题目(2)
3.7.1  Numbers
3.7.2  No Cheating
3.7.3  Stock Charts
3.7.4  Watering Plants
3.7.5  Number Sets
3.7.6  Wi-fi Towers
第4章 登峰造极——高级篇
4.1  更加复杂的数学问题
4.1.1  矩阵
4.1.2  模运算的世界
4.1.3  计数
4.1.4  具有对称性的计数
4.2  找出游戏的必胜策略
4.2.1  游戏与必胜策略
4.2.2  Nim
4.2.3  Grundy数
4.3  成为图论大师之路
4.3.1  强连通分量分解
4.3.2  2-SAT
4.3.3  LCA
4.4  常用技巧精选(二)
4.4.1  栈的运用
4.4.2  双端队列的运用
4.4.3  倍增法
4.5  开动脑筋智慧搜索
4.5.1  剪枝
4.5.2  A*与IDA*
4.6  划分、解决、合并:分治法
4.6.1  数列上的分治法
4.6.2  树上的分治法
4.6.3  平面上的分治法
4.7  华丽地处理字符串
4.7.1  字符串上的动态规划算法
4.7.2  字符串匹配
4.7.3  后缀数组
4.8  一起来挑战GCJ的题目(3)
4.8.1  Mine Layer
4.8.2  Year of More Code Jam
4.8.3  Football Team
4.8.4  Endless Knight
4.8.5  The Year of Code Jam
阅读
本书中未涉及的拓展主题
书中例题列表
参考文献

 

 

下载地址:网盘下载

 

转载于:https://www.cnblogs.com/long12365/p/9730687.html

  • 0
    点赞
  • 0
    评论
  • 1
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

表情包
插入表情
评论将由博主筛选后显示,对所有人可见 | 还能输入1000个字符
内容简介   《挑战编程:程序设计竞赛训练手册》分为14章,分别介绍在线评测系统的基本使用方法、数据结构、字符串、排序、算术与代数、组合数学、数论、回溯法、图遍历、图算法、动态规划、网格、几何,以及计算几何,并在附录中介绍了一些著名的程序设计竞赛以及相应的备赛建议与比赛技巧。每章的正文用十余页的篇幅覆盖了该领域最核心的概念和算法,然后给出八道可在线提交的完整编程挑战题目供读者练习。   全书内容紧凑、信息量大,是各类程序设计竞赛的选手与教练不可多得的参考书。 作者简介   Steven S.Skiena是美国Stony Brook大学计算机教授,研究方向包括图、串和几何算法的设计和应用(尤其是生物方面)。 他曾获ONR青年研究员奖和IEEE计算机科学与工程本科教学奖,并著有四本书籍,包括“The Algorithm Design Manual”和“Calculated Bets:Computers,Gambling,andMathematical Modeling to Win”。 Miguel A.Revilla是西班牙Valladolid大学应用数学与算法教授。他是ACM/ICPC官方网站的资料整理者,创立并维护着全球最权威的在线评测与网络比赛系统。他涉足ICPC十余年,如今已是ACM国际指导委员会成员。2005年,他荣获Joseph S.DeBlasi杰出贡献奖。目前,他是EduJudge项目在Valladolid大学的领导者,致力于把在线评测系统用于有效的电子学习中。
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值