信息学奥赛2:121道题零基础吃透高级算法与数据结构(视频教程+代码详解+刻意练习)
举报
正版全新
作者:
王健伟 著
出版社:
北京大学出版社
ISBN:
9787301372326
出版时间:
2022-12
作者:
王健伟 著
出版社:
北京大学出版社
ISBN:
9787301372326
售价
¥
80.10
6.7折
定价
¥119.00
品相
全新
上书时间 2026-06-03
卖家超过10天未登录
商品描述:
【书 名】 信息学奥赛2:121道题零基础吃透高级算法与数据结构(视频教程+代码详解+刻意练习) 【书 号】 9787301372326 【出 版 社】 北京大学出版社 【作 者】 王健伟 著 【出版日期】 2026-04-01 【开 本】 16开 【定 价】 119.00元 【编辑推荐】 (1)大量图示使知识表达直观清晰。 (2)语言简明易懂、讲解细致,便于理解复杂概念。 (3)知识覆盖面广,讲解深入。 (4)提供完整、可编译运行的C++代码。 从零开始,直达竞赛核心 练真题 精选121道信息学奥赛经典习题,提供完整代码与习题重点知识的视频讲解。 攻难点 深入突破动态规划算法与数据结构,包括栈、队列、树、图等核心难点 悟方法 不止于AC,更注重解题思维的培养与算法思想的融会贯通。 通关易 系统规划,助力零基础学习者稳步通关C++与算法,直达CSP-J认证要求。 【内容简介】 本书是一本针对信息学奥赛CSP-J考试进行多种算法题型讲解类书籍,也是本系列共三本书籍中的第2本。 全书分两部分共8章。其中第*部分(第1~第4章)针对的是动态规划算法题型的讲解,内容包括:路径或网 格行走问题、序列问题、决策制定问题、背包问题、区间动态规划问题、分割问题、编辑距离问题、计数问题。第 二部分(第5~第8章)针对的是四种重要数据结构(包括栈、队列、树、图)的讲解。全书共计安排了信息学奥赛 中121道经典题型的解析。 本书既适合作为广大信息学奥赛学习者的自学用书和考试刷题用书,也适合作为信息学奥赛CSP-J考试培训的 参考教材。 【目录】 第*部分 算法刷题之动态规划算法 第1章 动态规划算法简介 1.1 动态规划算法的代码形式4 1.2 动态规划算法的题型特点4 1.3 动态规划算法的解题步骤5 1.4 动态规划算法的题型整理6 第2章 动态规划算法之基本模型 2.1 1258:数字金字塔10 2.2 1259:求*长不下降子序列13 2.3 1260:拦截导弹(Noip1999)16 2.4 1261:城市交通路网18 2.5 1262:挖地雷22 2.6 1263:友好城市24 2.7 1264:合唱队形26 2.8 1265:*长公共子序列29 2.9 1266:设备分配34 2.10 1281:*长上升子序列38 2.11 1282:*大子矩阵39 2.12 1283:登山40 2.13 1284:摘花生44 2.14 1285:*大上升子序列和47 2.15 1286:怪盗基德的滑翔翼49 2.16 1287:*低通行费50 2.17 1288:三角形*佳路径问题52 2.18 1289:拦截导弹56 第3章 动态规划算法之背包问题 3.1 1267: 01背包58 3.2 1268:完全背包问题65 3.3 1269:庆功会(多重背包)69 3.4 1270:混合背包72 3.5 1292:宠物小精灵之收服(二维费用背包)73 3.6 1271:潜水员(二维费用背包)79 3.7 1272:分组背包90 3.8 322题:零钱兑换(完全背包)93 3.9 1273:货币系统(完全背包)95 3.10 1290:采药(01背包)98 3.11 1291:数字组合(01背包)99 3.12 1293:买书(完全背包)102 3.13 1294:Charm Bracelet (01背包)105 3.14 1295:装箱问题(01背包)106 3.15 1296:开餐馆(不太适合背包)108 第4章 动态规划算法之经典题 4.1 1274:合并石子111 4.2 1275:乘积*大116 4.3 1276:编辑距离118 4.4 1277:方格取数123 4.5 1278:复制书稿(book)127 4.6 1279:橱窗布置(flower)131 4.7 1280:滑雪135 4.8 1297:公共子序列137 4.9 1298:计算字符串距离138 4.10 1299:糖果141 4.11 1300:鸡蛋的硬度143 4.12 1301:大盗阿福(打家劫舍)146 4.13 1302:股票买卖147 4.14 1303:鸣人的影分身152 4.15 1304:数的划分155 4.16 1305:Maximum sum157 4.17 1306:*长公共上升子序列160 4.18 1197:山区建小学164 第二部分 数据结构 第5章 栈 5.1 1331:后缀表达式的值171 5.2 1353:表达式括号匹配(stack)173 5.3 1354:括弧匹配检验174 5.4 1355:字符串匹配问题(strs)174 5.5 1356:计算(calc)176 5.6 1357:车厢调度(train)179 5.7 1358:中缀表达式值(expr)181 第6章 队列 6.1 1332:周末舞会183 6.2 1333:Blah数集185 6.3 1334:围圈报数186 6.4 1335:连通块186 6.5 1359:围成面积188 6.6 1360:奇怪的电梯(lift)190 6.7 1361:产生数(Produce)191 6.8 1362:家庭问题(family)193 6.9 1418:猴子选大王(修改的约瑟夫问题)197 第7章 树 7.1 树的基础概念201 7.2 1336:找树根和孩子202 7.3 1337:单词查找树/字典树/Trie树204 7.4 二叉树的概念208 7.5 1338:医院设置210 7.6 二叉树的遍历213 7.7 1339:求后序遍历216 7.8 扩展二叉树219 7.9 1340:扩展二叉树220 7.10 1363:小球(drop)222 7.11 二叉树的层序遍历225 7.12 1364:二叉树遍历(flist)226 7.13 1365:FBI树(fbi)228 7.14 1366:二叉树输出(btout)230 7.15 1367:查找二叉树(tree_a)232 7.16 1368:对称二叉树(tree_c)233 7.17 1369:合并果子(fruit:小顶堆)234 7.18 1370:*小函数值(minval)240 7.19 1371:看病243 7.20 1372:小明的账单246 7.21 1373:鱼塘钓鱼(fishing)249 第8章 图论算法 8.1 基础知识255 8.2 图的遍历264 8.3 *短路径算法274 8.4 图的连通性331 8.5 并查集354 8.6 *小生成树401 8.7 拓扑排序418 【前言】 前言 信息学奥赛,全称是全国青少年信息学奥林匹克竞赛(National Olympiad in Informatics,NOI),简称信奥赛,是一项面向全国中小学生的计算机编程竞赛,目的在于选拔和培养在信息学领域比较突出的学生。 信息学奥赛适合小学到高中阶段的在校学生参与,学习信息学奥赛比较适宜的开始年龄在小学4年级到初中2年级之间。 信息学奥赛在所有青少年编程比赛中的含金量非常高,如果能在信息学奥赛的考试中拿到一个亮眼的成绩,将是一个孩子一生中能够取得的重要成绩之一,不但能够使孩子在中考、高考择校中享受到诸多的优惠录取政策,甚至能够给他们将来的择业、就业带来非常大的帮助——很多用人单位非常注重孩子曾经在信息学奥赛考试中取得过好成绩。 信息学奥赛主要考核以下三方面知识。 (1)重点考核计算机中的“算法和数据结构”这个分支领域的知识。 (2)小学到高中甚至大学阶段的一些数学知识点。 (3)少部分基础且常用的C++语言知识。 总述 简单来说,信息学奥赛考核的是编程方面的知识。如果划分专业的话,只要涉及编程,一般都属于计算机软件或计算机应用专业,至少是计算机相关专业。 值得注意的是,虽然少儿编程、商业软件编程都是编程,但它们有很大的区别。 商业软件编程属于计算机行业。所以,如果站在商业软件编程的角度看,计算机行业是一个广泛且复杂的领域,涵盖了很多分支方向,而且知识更新换代速度非常快,每年都有大量的新技术出现,需要不断学习。能在计算机行业生存下来的人,需要具备极速学习新知识的能力。 但是,少儿、青少年编程教育领域,知识体系很少发生变动,所需要学习和掌握的知识相对比较固定。 因为职业定位和发展、经济回报等原因,计算机行业工作的人很少介入到少儿、青少年编程领域。同时,多数编程培训机构的老师、教练对真正从事计算机行业的人能做什么,在做什么,也是比较陌生的。 今天,借着本书的出版,笔者希望能够与少儿、青少年编程机构的老师、教练及各位学习编程的青少年朋友们产生更多的交集,携手共同学习,共同进步。 一直以来,很多家长都有一个疑问——我的孩子似乎没有编程天赋,他(她)很难在信息学奥赛考试中取得好成绩。这种认识是片面甚至是错误的。要在信息学奥赛中拿到好成绩,天赋并不是*重要的,起决定性作用的往往在于勤奋和坚持学下去的决心和毅力。那些在信息学奥赛的考试中取得了好成绩的佼佼者,他们背后都是投入了大量时间、挥洒了大量汗水的。 信息学奥赛的学习中切忌急功近利,妄想通过几个月的突击就能拿到好成绩。作为竞赛级别的考试,信息学奥赛的难度自然是不小的。所以,正确的学习态度是将其作为一门文化课来对待,做好打持久战的准备,投入的时间少则1~2年,多则3~5年,而且每天都要坚持能够拿出1 h时间来学,如果能做到这样,想不在信息学奥赛考试中拿到好成绩都是很难的。 当下,虽然教孩子学信息学奥赛的老师、教练并不少,但在教学过程中,很多老师、教练仍旧存在以下问题。 (1)先讲一大堆短时间内用得上或用不上的理论知识,然后带孩子刷少量的题。 (2)让孩子独自、大量刷题,但极少为孩子讲解题目所涉及的重点、难点知识,让孩子学得一头雾水。 (3)针对一个题,给出很多种解法和思路,用到了很多复杂的编程技巧,全然不顾孩子当前的基础、吸收能力,搞得孩子糊里糊涂。 上面三个问题的成因,主要受限于传授知识的老师、教练自身的专业能力及授业能力。很多老师、教练一讲课就会把学生讲糊涂。一个知识点,他自己明白,但完全不清楚学生哪里容易卡壳,容易在哪里不明白。 在本书中,笔者会直接采用以练代讲,边练边讲的形式进行写作——全程通过刷题带动和推进书籍内容的书写。 当然,刷题,并不是让孩子成为刷题机器。但是,只有达到足够的刷题量,各种题型都有所见识,才能使孩子解题的眼界和思路更加开阔,也唯有此,才能让孩子做到泰山崩于前而面不改色,在即将面对的信息学奥赛考试中应付自如。 毫不夸张地说,大量刷题是孩子学习信息学奥赛唯一有效的学习方式。而且,即便是同一个题,如果刷一遍感觉难以理解,那就多刷几遍,一定会理解得更加深入。 书籍介绍 《信息学奥赛》系列书籍共三本,全程通过刷题、讲题带动和推进内容的讲解,换句话说,在刷题过程中,随时遇到新知识,笔者会随时进行讲解。 (1)第1本:《信息学奥赛1:114道题零基础吃透C++与算法基础(视频教程+代码详解+刻意练习)》。 * 基础C++语言。 * 8类常见算法题型:排序、递推、递归、搜索与回溯、高精度、贪心、分治、广度优先搜索,共114道题,平均每种算法练习13道题。 (2)第2本:《信息学奥赛2:121道题零基础吃透高级算法与数据结构(视频教程+代码详解+刻意练习)》。 * 1类常见算法题型:动态规划。 * 4类常见数据结构题型:栈、队列、树、图。 这5类常见题型共121道题,其中动态规划51道练习题,栈7道练习题,队列9道练习题,树16道练习题,图38道练习题。 (3)第3本:《信息学奥赛3:历年真题解析与拉分解题思维训练(视频教程+代码详解+刻意练习)》。 2015—2024年这10年来信息学奥赛CSP-J初赛及复赛的真题。 以2024年信息学奥赛CSP-J初赛及复赛的真题为例,看一看题目数量。 * CSP-J初赛:满分100分。单项选择15道题;阅读程序进行单选和判断17道题;完善程序进行单选10道题。 * CSP-J复赛:满分400分,共4道编程大题。 * 第1本和第2本书所刷的题目,主要来自信息学奥赛一本通网站( /> * 第3本书所刷的题目,均来自2015—2024年这10年来信息学奥赛CSP-J初赛及复赛的真实考卷。 适合读者对象 从大的方向来说,本书面向希望参加信息学奥赛中的CSP-J(入门级)比赛的广大学友,具体来说: (1)信息学奥赛初学者:渴望参加信息学奥赛却缺乏编程基础,迫切需要打好C++语言基础。 (2)已经有一定的编程知识,但需要专业的指导来提升信息学奥赛的表现和解题技能。 (3)有志于提高成绩的信息学奥赛选手:追求在信息学奥赛考试中获得更高的成绩和突破个人极限的经验选手。 (4)需要系统性训练的学生:寻找全面、系统性训练以提高信息学奥赛考试表现的有抱负学生。 不管读者是否有很丰富的信息学奥赛编程经验,不管参加的是何种级别的信息学奥赛,这本书都值得购买,原因有两点: (1)对于初学者:信息学奥赛大纲中已经明确规定,信息学奥赛将知识点划分成从低到高三个等级——入门级、提高级、NOI级,高级别知识点自动包含低级别知识点。换句话说,任何要参加信息学奥赛的孩子,无论参加什么级别的信息学奥赛,都应该以本系列的书籍作为学习信息学奥赛的起点,因为本书所讲述的内容正是信息学奥赛大纲中入门级的知识。 (2)对于有丰富经验的人:仔细阅读这本书,可以弥补以往遗漏的很多知识点,也能够细细体会笔者以练代讲,边练边讲这种独特讲解方式带给读者与众不同的新感受。 基础能力要求 在阅读本书前,需要读者具备以下基础能力。 (1)熟悉26个英文字母。 (2)熟悉基本的数学知识,比如整数、小数、分数的加减乘除。 (3)基本的计算机操作,比如键盘、鼠标的使用要相对熟练,能够通过一些视频或书籍的指导自行安装常用软件。 许多读者担心自己的数学能力所限,难以学好信息学奥赛,但这种担心是不必要的。在阅读本书的过程中,凡是涉及的数学知识,笔者都会随遇随讲,基本不会出现直接把某个数学知识运用到编程中的情形,让读者由浅入深,逐步递进地来学新知识,不会觉得学习编程有多难。 书籍特点 ①大量的图形使知识的表述直观且清晰。 ②表述简单易懂、清晰、细致,再难的知识点都可以做到容易理解和掌握。 ③知识覆盖面广,讲解细致入微。九大类算法、四大类数据结构、10年来CSP-J信息学奥赛考试真题,累计不低于300道高质量题目的练习。 ④提供完整、翔实、可以编译运行的C++程序实现代码。 ⑤随书附赠配套视频教程,为视频学习爱好者带来便利与惊喜。 阅读建议与学习方法 在阅读书籍的过程中,建议读者以1~2天完成一道题或掌握一个小节理论知识的速度进行。 要提高计算机编程能力,动手实践极其关键。只出眼睛看和耳朵听,永远学不会编程,这跟不下水永远学不会游泳一个道理。 在面对书中每一道题的时候,有三点要求。 (1)充分理解书中阐述的讲解内容。 (2)将书中所涉及的代码逐个字符输入到计算机中去(严格禁止对笔者提供的代码直接进行复制粘贴),确保对代码的含义真正理解,确保代码运行正确、得到预期结果。 (3)在前述的信息学奥赛一本通网站进行账号注册(必要的时候需要缴纳一定的费用),并将每一个所练习的题目源码提交到该网站,确保代码在所有测试点上全部通过才算真正掌握了该题。 特别值得说明的是,有些题目同时在信息学奥赛一本通网站和洛谷网站(也是一个比较优质的信息学奥赛等竞赛的题目网站,网址为 />h时间不间断地学习来计算,学习周期在4~6个月。整个三本书学完,需要花费1年到1年半的时间。这个学习时间可以稍微放宽一点,基本上,只要在2年内学完这三本书,都是一个正常且高效的学习进度。 软件运行环境 工欲善其事,必先利其器。要把编程学好,有一台过得去的电脑是必须的。 编程并不需要电脑有多高配置,在网上商城购买一台2000元的台式机或笔记本电脑,甚至到附近电脑维修点购买一台*近三五年,几百元的二手电脑,使用起来不明显感觉卡顿,就可以了。 对于学习这本书的读者,建议全部在Windows10或Windows11操作系统下学习。不要使用苹果操作系统、Linux操作系统,除非你自身能够驾驭得很好。 对于信息学奥赛,绝大部分老师、教练使用的是DEV-C++编程环境来教孩子,并且推荐孩子也使用这个编程环境,这其实是因为他们绝大部分人只熟悉这个编程环境。 虽然,DEV-C++有诸多好处,但它的*大坏处是功能不够强,从而使孩子在学习和探究一些深层次知识的时候受到很大局限,极大地影响孩子自身的成长和向真正高手的迈进。 基于此,我强烈推荐读者使用Visual Studio 2022编程环境学习本书,这是微软公司提供的一个商业集成开发环境,安装简单,操作简单,功能强悍,尤其是强大的调试功能,可以让读者通过自己对程序的调试就可以解决很多问题,基本避免了经常询问他人之苦。只要电脑不是配置太差支撑不了Visual Studio 2022的运行,就一定要用起来,切记切记!使用DEV-C++和使用Visual Studio 2022,区别到底有多大,一般人是很难有很直观的感受的,尤其是初学者,举个不那么恰当的例子,区别就像是一个月请了位月薪五千的保姆和月薪五万的保姆的区别一样——体现在方方面面,越是专业的、高水平的程序员,越能体会到两者的区别。 在学习本书过程中,笔者的全部演示都会以使用Visual Studio 2022为主,DEV-C++只会偶尔使用甚至基本不用。笔者也会在本系列第1本书的正文开头部分详细介绍Visual Studio 2022的主要用法,一定要认真学习。 配套资料获取 本书有完整的配套学习资料(源码)和视频教程,读者可以免费获取。获取方法如下: (1)请用微信中“扫一扫”功能,扫描下方任意一个二维码来关注对应微信公众号。 (2)在微信公众号中,输入“信奥赛”三个字,就可以获取到配套学习资料和视频教程的下载链接。 (3)领取GESP真题详解资料、问题讨论,请加入QQ群:883412838。 特别声明 在写书过程中,笔者借鉴了多方参考资料、程序设计思想、实现代码,遇到非常优秀的内容,亦会在充分理解的基础上引入到书中来以飨读者。 虽然无法向这些内容提供者一一道谢,但笔者坚信,善因终有善果,人活着的*大意义和乐趣,也正在于能够帮助他人、成就他人。 几年前,笔者曾与清华大学出版社合作,连续出版了5本《C++新经典》系列计算机书籍,收获了数万的读者,好评举不胜举。此外,笔者的视频课程,只要发布,绝大部分情况下都会取得极高的赞誉。 今天,笔者再次通过出版书籍的形式,为参加信息学奥赛的广大学子奉上一个新系列,同样是高质量的“信息学竞赛”系列书籍。希望这份努力能够为广大希望在信息学奥赛考试中取得好成绩的读者带来新的学习热潮。 编者 2025年5月30日
孔网啦啦啦啦啦纺织女工火锅店第三课
开播时间:09月02日 10:30
即将开播,去预约
直播中,去观看