算法竞赛入门经典(第2版)

刘汝佳

出版时间

2014-06-01

ISBN

9787302356288

评分

★★★★★

标签

编程

书籍介绍

《算法竞赛入门经典(第2版)》是一本算法竞赛的入门与提高教材,把C/C++语言、算法和解题有机地结合在一起,淡化理论,注重学习方法和实践技巧。全书内容分为12 章,包括程序设计入门、循环结构程序设计、数组和字符串、函数和递归、C++与STL入门、数据结构基础、暴力求解法、高效算法设计、动态规划初步、数学概念与方法、图论模型与算法、高级专题等内容,覆盖了算法竞赛入门和提高所需的主要知识点,并含有大量例题和习题。书中的代码规范、简洁、易懂,不仅能帮助读者理解算法原理,还能教会读者很多实用的编程技巧;书中包含的各种开发、测试和调试技巧也是传统的语言、算法类书籍中难以见到的。

《算法竞赛入门经典(第2版)》可作为全国青少年信息学奥林匹克联赛(NOIP)复赛教材、全国青少年信息学奥林匹克竞赛(NOI)和ACM国际大学生程序设计竞赛(ACM/ICPC)的训练资料,也可作为IT工程师与科研人员的参考用书。

AI导读
核心看点
  • 结合C/C++语言与算法,淡化理论注重实践技巧
  • 覆盖从入门到提高的12章核心知识点与大量例题
  • 提供规范简洁代码及传统书籍罕见的调试测试技巧
适合谁读
  • 准备参加NOIP、NOI或ACM/ICPC竞赛的学生
  • 具备一定编程基础,希望系统提升算法能力的读者
  • 需要参考高效解题思路与编程技巧的IT工程师
读前提醒
  • 代码注释较少且变量名简略,需耐心阅读以理解意图
  • 习题难度较大,建议配合在线评测系统反复调试练习
  • 不适合零基础新手,建议先掌握C语言基础语法再读
读者共识
  • 被公认为算法竞赛入门与提高的经典必读教材
  • 内容虽全面但讲解风格硬核,对初学者不够友好
  • 建议与《算法导论》搭配阅读,互补理论与实践

本导读基于书籍简介、目录、原文摘录、短评和书评生成,不等同于全文精读。

精彩摘录
  • "现在讨论最坏情况下也是O(n)的方案,把所有的数分为5个一堆,那么总共会有n/5堆,对于每堆我们可以很快的找到中位数(因为只有5个所以很容易嘛),之后调用当前算法找到这n/5个中位数的中位数,用这个数来做pivot,所以这个算法被叫做Median of Medians algorithm。 把中位数的中位数作为pivot的话,那么原数组中便会有3/5*1/2个也就是3/10个小于等于这个pivot的,同理会有3/10大于这个pivot的,所以最坏情况下,数组被分为30%,70%或者70%,30%的两部分。 T(n)<=T(n/5)+T(7/10*n)+O(n)<=c*n*(1+9/10+(9/"
  • "有趣的是,如果把状态定义成“d(i)表示以节点i为终点的最长路径长度”,也能顺利求出最优值,却难以打印出字典序最小的方案。想一想,为什么?你能总结出一些规律吗?"
  • "C语言中的字符型用关键字char表示,实际储存的是字符的ASCII码。字符常量可以用单引号法表示。在语法上可以当做int型使用。"
  • "可以用sprintf把格式化信息输出到字符串,保证buffer足够大。 由于字符串的本质是数组,只能用strcpy,strcmp,strcat来执行“赋值”,“比较”,“连接”操作。不能用=,==,<=,+等运算符。它们在string.h中。"
  • "使用fgetc可以从打开的文件读取一个字符。一般情况下应当检查不是EOF后再将其转换成char值。getchar等价于fgetc(stdin)。 fgets会读取完整的一行。就是说,它一旦读取到‘\n’,就会停止读取工作,然后在buffer后加‘\0’结束符。 头文件ctype.h中定义的isalpha,isdigit,isprint,等可以判断字符的属性,toupper,tolower等用来转换大小写。"
  • "字符还可以直接用ASCII码来表示。如果用八进制\o,十六进制就是\xh(h为16进制数字串)"
  • "为了方便使用,往往用typedef struct {域定义;}类型名;的方式定义一个新类型名。这样,就可以像原生数据类型一样使用这个自定义类型了。"
  • "建议用来判断某事物是否具有某种特殊性质的函数命名成“is_xxx”的形式。返回非0数为真,0为假。"
作者简介
刘汝佳,1982年12月生,高中毕业于重庆市外国语学校。2000年3月获得NOI2000全国青少年信息学奥林匹克竞赛一等奖第四名,进入国家集训队,并因此保送到清华大学计算机科学与技术系。大一时获2001年ACM/ICPC国际大学生程序设计竞赛亚洲-上海赛区冠军和2002年世界总决赛银牌(世界第四),2005年获学士学位,2008年获硕士学位。 学生时代曾为中国计算机学会NOI科学委员会学生委员,担任IOI2002-2008中国国家队教练,并为NOI系列比赛命题十余道。现为NOI竞赛委员会委员,并在NOI 25周年时获得中国计算机学会颁发的“特别贡献奖”。 2004年至今共为ACM/ICPC亚洲赛区命题二十余道,担任6次裁判和2次命题总监,并应邀参加IOI和ACM/ICPC相关国际研讨会,发表论文两篇。 2004年初作为第一作者出版专著《算法艺术与信息学竞赛》,2009年出版译著《编程挑战》,2009年出版《算法竞赛入门经典》,2012年出版《算法竞赛入门经典——训练指南》。 多年来在全国二十余个城市进行中学生竞赛培训工作,为北京、上海、吉隆坡等地的著名高校授课与宣讲,并多次与TopCoder、百度和网易有道等知名企业合作举办比赛,让更多的IT人才获得展示自我的平台。
目录
第1部分 语言篇
第1章 程序设计入门 1
1.1 算术表达式 1
1.2 变量及其输入 3
1.3 顺序结构程序设计 6

显示全部
用户评论
汝佳大神的书 刷题ing,希望我有生之年能刷完QAQ😂
退坑
ACM必备
2018.1.29-2018.4.1 失误了…寒假没看多少::&gt;_&lt;::
大一刚入学买的,唉,看了100页就没看下去了,代码难读,现在好像也没时间看这个,还是准备系统的学习算法更好。
大概六年前买的,从来没有完整读完过。首先个人认为不搞算法竞赛的话没必要读这本书,太难了。对于竞赛入门者来说,书中部分例题和习题难度较大,而且很多重要内容都隐藏在例题和习题中讲。部分地方叙述过于简略,导致理解困难。即使是想入门竞赛,也最好是有人带或者有一定基础后再来看这本书。
许愿梦中情厂(5月失败,8月去了另一个hooray);题目确实比较难,step by step;《挑战》更佳。
训 练 指 南(好书,最大的缺点是习题都是uva的)
特别适合做acm教材的书,内容框架不错。有人带着看最好,后面很多内容都是点到为止的,没有很详细,自学恐怕还是有点困难。
粗略看了一遍,贴合竞赛场景,语法入门,基础算法,到各种高阶算法,大量经典题
下载
收藏