挑战编程

出版时间:2009-7  出版社:清华大学出版社  作者:斯基纳  页数:302  译者:刘汝佳  
Tag标签:无  

前言

不管对初出茅庐的新人还是身经百战的老手,用“挑战”一词形容程序设计竞赛是再合适不过的了。酷爱编程的人们往往喜欢挑战,但大多数程序员对各种程序设计竞赛却是“敬而远之”,为什么会这样呢?原因在于,学习编程语言和软件开发的知识只是接受这些挑战的必要而非充分条件。要想在程序设计竞赛中脱颖而出,还需要更多的知识和技能。而这些知识和技能,却是很难在传统的课堂和教科书中学到的。本书的目标读者便是那些已经具备初步的编程技能,对程序设计竞赛充满好奇,希望有机会武装自己、接受编程挑战的人,以及他们的老师和教练(甚至父母)。即使不参加任何竞赛,从本书的编程挑战中学到的东西,也会对程序员的职业生涯产生重要影响,更不用说这些挑战本身就是充满乐趣、引人入胜的。本书文字精练、通俗易懂。尽管每一章都涉及一个不同的领域,但篇幅却短得甚至可以一口气读完。另外,所有题目均附有难度、流行度等客观评价系数,并可以在线提交。写出程序并不意味着完善的解决了难题,只有通过了评测系统的严格把关才能让人信服。全书由刘汝佳主译,并得到王希、杨锐、尹淳兴、邱前皓等的大力协助。感谢两位作者算法大师Steven s.Skiena教授和在线评测系统uVaOJ的创立者Miguel A.Revilla教授邀请译者完成本书的翻译工作,提供了书的源程序和插图,并讨论书中的一些细节;感谢清华大学出版社的龙放铭编辑,他对工作认真负责的态度和严谨的科学作风令人钦佩。尽管我们付出了许多努力,但译文中难免有翻译不当之处,敬请批评指正。

内容概要

本书分为14章,分别介绍在线评测系统的基本使用方法、数据结构、字符串、排序、算术与代数、组合数学、数论、回溯法、图遍历、图算法、动态规划、网格、几何,以及计算几何,并在附录中介绍了一些著名的程序设计竞赛以及相应的备赛建议与比赛技巧。每章的正文用十余页的篇幅覆盖了该领域最核心的概念和算法,然后给出八道可在线提交的完整编程挑战题目供读者练习。    全书内容紧凑、信息量大,是各类程序设计竞赛的选手与教练不可多得的参考书。

作者简介

Steven S.Skiena是美国Stony Brook大学计算机教授,研究方向包括图、串和几何算法的设计和应用(尤其是生物方面)。
他曾获ONR青年研究员奖和IEEE计算机科学与工程本科教学奖,并著有四本书籍,包括“The Algorithm Design Manual”和“Calculated Bets:Computers,Gambl

书籍目录

译者序前言第1章 入门  1.1 初识自动评测系统    1.1.1 评测系统反馈  1.2 挑选你的武器    1.2.1 程序设计语言    1.2.2 如何阅读本书的程序    1.2.3 标准输入输出  1.3 编程提示  1.4 基本数据类型  1.5 关于习题  1.6 习题    1.6.1 3n+1问题(3n+l Problem)    1.6.2 扫雷(Minesweeper)    1.6.3 旅行(The Trip)    1.6.4 液晶显示屏(LC~Display)    1.6.5 图形化编辑器(Graphical Editor)    1.6.6 解释器(Interpreter)    1.6.7 将军fCheck the Checkl    1.6.8 澳大利亚投票(Australian Voting)  1.7 提示  1.8 注解第2章 数据结构  2.1 基本数据结构    2.1.1 栈    2.1.2 队列    2.1.3 字典    2.1.4 优先队列    2.1.5 集合  2.2 库函数    2.2.1 C++标准模板库  2.3 程序设计实例:纸牌大战  2.4 准备行动  2.5 字符串输入输出  2.6 赢得战争  2.7 测试与调试  2.8 习题    2.8.1 快乐的跳跃者(Jolly Jumper)    2.8.2 扑克牌型(Poker Hands)    2.8.3 罢工(Hartals)    2.8.4 解密(Crypt Kicker)    2.8.5 完美洗牌术(Stack’em Up)    2.8.6 ErdSs数(ErdSs Numbersl    2.8.7 比赛记分板(Contest Scoreboard)    2.8.8 Yahtzee游戏(Yahtzee)  2.9 习题  2.10 注解第3章 字符串    3.1 字符编码    3.2 字符串的表示    3.3 程序设计实例:公司更名    3.4 模式查找    3.5 字符串操作    3.6 程序的完成    3.7 字符串库函数    3.8 习题    3.8.1 WERTYU键盘fWERTYU)    3.8.2 寻找单词(Where’s Waldorf?)    3.8.3 公共排列(Common Permutation)    3.8.4 解密II(Crypt Kicker II)    3.8.5 自动评测脚本(Automated Judge Script)    3.8.6 文件碎片(File Fragmentation)    3.8.7 Doublet序列fDoublets) ……第4章 排序第5章 算术与代数第6章 组合数学第7章 数论第8章 回溯法第9章 图遍历第10章 图算法第11章 动态规划第12章 网格第13章 几何第14章 计算几何附录A参考文献

章节摘录

插图:第2章数据结构数据结构是复杂算法的核心。数据结构的选择会对算法实现的复杂性产生巨大的影响。选择了正确的数据结构,编程会十分容易;选择了错误的数据结构,则需要大量的时间和代码量作为决策失误的代价。在本章中,你将复习到一些每个程序员都应熟悉的基础数据结构。我们将以一个孩子们喜欢的扑克牌游戏作为背景展开讨论。很多经典的编程题目都是以游戏为背景的。几乎所有人在初学编程的课程中都会接触到汉诺塔(HanoiTower)、骑士周游、八皇后这样的游戏。2.1 基本数据结构我们首先介绍栈(stack)、队列(queue)、字典(dictionaries)、优先队列(priorityqueues)、集合(sets)等最重要的数据结构的抽象操作(abstractoperations),接下来简单描述从头实现这些操作的最简单的方法。请注意,c++和Java这样的现代面向对象程序设计语言都已经在它们的标准库中实现了基础数据结构。我们将在2.2 节中简单地介绍它们。每个程序员都应该花一些时间来熟悉这些数据结构,而不是每次都从头实现。当你很好地熟悉了这些库的使用方法后,在阅读本节时便可专注于这些数据结构所擅长的领域而非实现细节。

编辑推荐

《挑战编程:程序设计竞赛训练手册》是由清华大学出版社出版的。

图书封面

图书标签Tags

评论、评分、阅读与下载


    挑战编程 PDF格式下载


用户评论 (总计84条)

 
 

  •   一本算法设计与编程练习的训练手册,内容不错。
  •   这是一本非常实用的算法设计与编程练习的训练手册。
  •   对于算法竞赛很有好处
  •   NOIP 2012 临近,买一本提高水平,真的好!!
    就是搜索算法没有明确的标出。手册很好携带。
    讲得很好,而且编程风格很好。值得学习。
    总之加油吧!!!
  •   比赛中用到的各种类型的算法都有介绍,感觉比较全面详细。挺好的
  •   练习算法的不错辅导材料。
  •   书很不错,这两本书,再结合算法导论,对ACM帮助很大!
  •   挺不错的算法书,很好用
  •   喜欢算法的就不要错过了 有难度有深度才有收获 不适合新手 要有一定算法功底
  •   很好 对编程有帮助 适合考研复试计算机的阅读
  •   对信息学竞赛知识点归纳总结的很到位,习题非常具有代表性!
  •   题目有趣且难度适中,讲解也很精巧很适合我提升编程能力
  •   例题经典,内容页不赖
  •   书有缺页(6页),不知如何处理
  •   题目蛮难不过很经典
  •   题目非常有趣,各种难度的题目都有,很好。
  •   很精致的书,内容简洁明了,适合有语言基础的读者
  •   这本书我在当当找到太高兴了。
  •   这本书基本都是解题思想,题很经典,需要一定编码能力的人看看。
  •   内容不错,到货较及时
  •   内容不错 就是纸质不怎么样
  •   是正版书籍,而且物流还不错,下次继续购买
  •   难难难难那。~!!
  •   还行,不过上面只有习题
  •   不错,质量也很好,老顾客了,希望有更多的折让奖励.
  •   不错的东西,值得一看
  •   买给别人的,送的时候别人挺喜欢
  •   向朝鲜战场这些
  •   促销时买的,自己看,收藏用
  •   看起来不错,推荐给ACMer的入门书
  •   ACM的教程 个人 一直推荐 刘汝佳的 确实不错
  •   挺好的 书是正版 正在看
  •   都还好 就是代码比较少 翻译过来的书总有点别扭
  •   好了没的说
  •   买的时候没注意到是佳哥翻译的,买之后果然大喜,佳哥这么牛逼的人翻译的,不会差。我就崇拜佳哥,超级无敌大牛佳哥
  •   感觉自己给费了
  •   书很不错的。。送得也蛮快
  •   有详细的UVa习题编号,可以跟着去做
  •   很赞的书,不过直到拿到手才知道是刘汝佳翻译的~~呵呵 小小囧下~
  •   不错 对我们这些备战ACM的ACMer们非常有用
  •   书不错,发货也快....
  •   不错 推荐 不错 推荐 不错 推荐 不错 推荐
  •   我买这本书,纯粹是作为业余兴趣,大概看了一下,这本书的内容都不算太深,而且也很有趣味,很适合作为竞赛入门的读本,还可以作为已经有了程序设计基础的人作为提高算法能力学习的教材。
  •   这书挺简略的~但其中有对初学者很好的编程习惯的建议,有很好的引导作用书中的思维方法值得学习~
  •   这本书不错,可以作为ACM程序入门经典来使用。。。
  •   题目范围很多很广 可开拓思维 提高编程能力~
  •   要学会分析问题,编程方法。
  •   这本书是老师推荐的,说对于初学者编程很有帮助,看过之后,感觉这本书还不错,值得购买.
  •   对编程有一定的帮助!!!
  •   很精彩的例题,精彩的讲解,翻译的还挺好。
    配合网上的题目一边学习一边练习非常受用。
  •   题目覆盖面很广,但基本以简单题为主,而且书中源代码较多,如果更多涉及到解题思路以及相关知识就更好了
  •   感觉都是题目 感觉实用性不强 不推荐
  •   按照思路走的很好,就是好像代码太少,思想也涉及不多,介绍的大多是uva上的题
  •   很不错的一本书,就是纸张差了点。其他都很好。
  •   我是一名学生,很高兴在当当上能买到这本书,这本书对想参加ACM的同学很有帮助的,很不错
  •   感觉基础还比较薄弱,只能偶尔翻看了,但质量还行。
  •   感觉书的印刷不太好
  •   主要是uva的题目翻译
  •   大部分页面只是题目的堆砌,难度明显不够,进阶的同学就不要费钱了。
  •   总体可以,内容不是很多
  •   还行咯,解答好像少了点,呵呵
  •   可惜买了这本书之后,没有看懂什么,并且他不是我想要的版本,我想要pascal语言,哎,这本书也不怎么好,只是翻译版!
  •   初学者就不要想了。个人认为这本书的意义还是在于它介绍的那个OJ,以及一些经验技巧,对于对编程很感兴趣并且想参加竞赛的同学以及那些刚刚开始准备竞赛的人还是有一些帮助的。虽然它有一些讲解,但是千万不要妄想那它学些什么东西,它只是告诉你你需要去学习些什么,让你好有个前进的方向,这对于很多对编程很干兴趣但又水平有限的人来说很有意义,可以做一个学习指导。个人认为对于它介绍的题目,按照它前言里说的,只是一个选截,还是应该归为学习方向指导性质一类的。也没有答案、解析,要自己去上它介绍的OJ做
  •   不适合进阶的群体
  •   原名叫做《Programming Challenges》,是某国家队训练用的,讲解很少,题目很多
  •   网上购物体验不错,这本书包装质量不错,不过内容都是伪代码,不是一般人看的懂的,不建议初学者使用
  •   这个数有挑战,只是不知道怎么用那个网站(英语贫困户),还有就是没有答案
  •   这本书是学长送我的 然后我自己买了一本   给好评吧  题目还不错
  •   学长推荐的,还行。正在看
  •   书很好,运送很快,目前没发现质量问题
  •   这本书不错,练习编程很用的着。有了这本书,自己的编程技巧有了不少长进
  •   纸张好,字迹清晰,内容丰富多样,对能力的培养有好处。
  •   没有答案,不适合初学者。
  •   为了菜价ACM竞赛买的书;内容很不错;但是不容易让人理解;想在算法方向有较深入理解强烈推荐读读;公司招人很多都是要考算法的
  •   很不错,很有读和练习的价值,需要一定的编程基础。
  •   09年买的,11年才评。因为之前我连账号都忘了,找不会来,哈哈。现在能通过邮箱找回来了。心里有点歉疚就来评评。当时送货是很快,服务好。书本质量好。
  •   这本书我刚刚看,习题很有意思,而且有深度,新手看的话可能做课后习题有点吃力,还是有点基础感觉可能会更好些!~
  •   书讲的很少,习题也没有讲解,做好不要买
  •   挑战编程
  •   趣味编程
  •   很好的书,不是盗版的,很好
  •   通过它.我进入了微软...
  •   入门好书,推演精辟入里。
  •   一个一个的程序例子很好
 

250万本中文图书简介、评论、评分,PDF格式免费下载。 第一图书网 手机版

京ICP备13047387号-7