藍(lán)橋杯程序競(jìng)賽真題解析及學(xué)習(xí)指導(dǎo)
定 價(jià):69 元
當(dāng)前圖書(shū)已被 1 所學(xué)校薦購(gòu)過(guò)!
查看明細(xì)
- 作者:金百東、崔曉松
- 出版時(shí)間:2025/9/1
- ISBN:9787302702542
- 出 版 社:清華大學(xué)出版社
- 中圖法分類(lèi):TP31-44
- 頁(yè)碼:
- 紙張:膠版紙
- 版次:
- 開(kāi)本:16開(kāi)
本書(shū)系統(tǒng)地介紹了藍(lán)橋杯程序競(jìng)賽中真題的常用算法及應(yīng)用。全書(shū)共14章,包括競(jìng)賽預(yù)備知識(shí)、基礎(chǔ)題、時(shí)間、字符串、規(guī)律題、二分法、優(yōu)先隊(duì)列與堆棧、基本遞歸、圖論、動(dòng)態(tài)規(guī)劃、區(qū)間運(yùn)算算法、數(shù)論、計(jì)算幾何、游戲題等。書(shū)中列舉了大量的藍(lán)橋杯競(jìng)賽真題,進(jìn)行了詳盡的分析,極具實(shí)用性。本書(shū)可以作為普通高等學(xué)校大學(xué)生參加程序競(jìng)賽和學(xué)習(xí)算法的參考書(shū),也可作為高校的創(chuàng)新實(shí)踐課教材,同時(shí)對(duì)廣大計(jì)算機(jī)算法愛(ài)好者深入研究算法或進(jìn)入計(jì)算機(jī)相關(guān)公司工作有一定的指導(dǎo)作用。
(1)教材中講過(guò)的知識(shí)點(diǎn)盡量略講,教材中未講的、競(jìng)賽中經(jīng)常用到的重點(diǎn)講;(2)藍(lán)橋杯真題解析中分析透徹,采用圖表技術(shù),代碼注釋詳盡;(3)某些題目用了多種方法解析,使讀者明曉它們的優(yōu)劣;(4)強(qiáng)調(diào)實(shí)踐,讓讀者在具體題目中體會(huì)算法的妙用。
前言
創(chuàng)作背景
工業(yè)和信息化部人才交流中心主辦的藍(lán)橋杯軟件和信息技術(shù)專(zhuān)業(yè)人才大賽自2010年舉辦以來(lái),至今已成功舉辦15屆,參賽院校達(dá)到1900多所,大賽連續(xù)多年入選高等教育學(xué)會(huì)競(jìng)賽排行榜單賽事,逐漸成為最有影響的程序競(jìng)賽之一。本書(shū)是作者為藍(lán)橋杯競(jìng)賽盡的一份微薄之力。以下三點(diǎn)是作者的創(chuàng)作動(dòng)機(jī): ①作為藍(lán)橋杯指導(dǎo)教師12年,見(jiàn)證了藍(lán)橋杯的成長(zhǎng),很想把自己的程序競(jìng)賽知識(shí)奉獻(xiàn)給廣大讀者;②網(wǎng)上也有一些關(guān)于藍(lán)橋杯程序競(jìng)賽的真題解析,但大多寫(xiě)得很簡(jiǎn)略,一般的讀者難以讀懂;③程序競(jìng)賽書(shū)籍不好編寫(xiě),許多人望而卻步,這可能是這方面書(shū)少的因素,但這也更是促使我們完成本書(shū)的重要原因。
歷經(jīng)四年,這本競(jìng)賽書(shū)終于完成了!每道題我們都親歷而為,因?yàn)槲覀兩钪? 如果自己不把題目做出來(lái),就很難給讀者真正講清楚。正如古語(yǔ)云: “寶劍鋒從磨礪出,梅花香自苦寒來(lái)!
本書(shū)內(nèi)容
本書(shū)共14章,具體內(nèi)容如下所示。
第1章競(jìng)賽預(yù)備知識(shí)。介紹了C語(yǔ)言常用函數(shù)及STL(standard template library)標(biāo)準(zhǔn)模板庫(kù)常用算法及容器的應(yīng)用方法。
第2章基礎(chǔ)題。介紹了常用的窮舉法、中等數(shù)學(xué)、取余、最大公約數(shù)、排序等內(nèi)容。
第3章時(shí)間。主要強(qiáng)調(diào)了時(shí)間基準(zhǔn)點(diǎn)是完成此類(lèi)題目的關(guān)鍵所在。
第4章字符串。字符串編程是程序的基本功。介紹了競(jìng)賽中常用的搜索、拆分、與其他算法結(jié)合綜合應(yīng)用等內(nèi)容。
第5章規(guī)律題?赏ㄟ^(guò)常規(guī)方法及小量的輸入數(shù)據(jù)獲得小量的輸出數(shù)據(jù)。通過(guò)觀察輸入、輸出數(shù)據(jù)的變化特點(diǎn),總結(jié)出經(jīng)驗(yàn)公式,利用經(jīng)驗(yàn)公式完成題目?jī)?nèi)容。
第6章二分法。介紹了STL二分法函數(shù)的應(yīng)用及常規(guī)二分算法的分析與應(yīng)用。
第7章優(yōu)先隊(duì)列與堆棧。介紹了兩種容器在實(shí)際中的應(yīng)用。優(yōu)先隊(duì)列在“最”值中應(yīng)用廣,堆棧在“括號(hào)”表達(dá)式中應(yīng)用較多。第8章基本遞歸。介紹了為什么有遞歸,遞歸的重要性,并通過(guò)實(shí)例加以解析。
第9章圖論。介紹了深度優(yōu)先搜索、寬度優(yōu)先搜索、并查集、單源最短路徑、最小生成樹(shù)在實(shí)際中的應(yīng)用方法。
第10章動(dòng)態(tài)規(guī)劃。介紹了線(xiàn)性動(dòng)態(tài)規(guī)劃、區(qū)間動(dòng)態(tài)規(guī)劃、樹(shù)形動(dòng)態(tài)規(guī)劃、數(shù)位動(dòng)態(tài)規(guī)劃的特點(diǎn)及應(yīng)用實(shí)例。
第11章區(qū)間運(yùn)算算法。介紹了樹(shù)狀數(shù)組、線(xiàn)段樹(shù)、ST系數(shù)表的特點(diǎn)及應(yīng)用方法。
第12章數(shù)論。介紹了快速冪取模、矩陣快速冪、歐拉函數(shù)、歐拉定理、擴(kuò)展歐幾里得、中國(guó)剩余定理等知識(shí)點(diǎn)及應(yīng)用方法。
第13章計(jì)算幾何。介紹了用到的點(diǎn)積、叉積等基本函數(shù)。講解了求任意多邊形面積、皮克定理、辛普森積分知識(shí)點(diǎn)及應(yīng)用方法。
第14章游戲題。介紹了巴什博弈、尼姆博弈等知識(shí)點(diǎn)及實(shí)際應(yīng)用。
本書(shū)特點(diǎn)
1. 本書(shū)實(shí)例豐富,涵蓋了藍(lán)橋杯第4~15屆的歷屆試題,包含A、B、C組省賽試題及總決賽試題。有簡(jiǎn)單題,也有中等難度及難題,適合各類(lèi)讀者學(xué)習(xí)。
2. 實(shí)例中有些題目用了多種方法解析,讀者可以加以對(duì)比,從中體會(huì)算法的不同及奧妙之處。
3. 實(shí)例講解詳盡,有些用到了大量的圖表,分析了示例數(shù)據(jù)在算法應(yīng)用中的詳細(xì)變化過(guò)程,讀者清楚了該過(guò)程,也就理解了算法實(shí)現(xiàn)的核心。
4. 本書(shū)從程序競(jìng)賽角度出發(fā),講解了與普通教材知識(shí)點(diǎn)的不同。例如競(jìng)賽中盡量不用C語(yǔ)言指針,一般不用鄰接矩陣求解圖論問(wèn)題等。
附加說(shuō)明
1. 本書(shū)中所選藍(lán)橋杯歷屆真題,都在藍(lán)橋云課官網(wǎng)、Dotcpp編程(C語(yǔ)言網(wǎng))提交成功,在此深表感謝。
2. 本書(shū)中有兩種示例: 一種是“【例XXX】”,表示是藍(lán)橋杯歷屆真題;一種是“【eXXX】”,表示是自編題目或者選自其他Online Judge系統(tǒng)題目。如洛谷網(wǎng)站、杭州電子科技大學(xué)ACM網(wǎng)站、力扣網(wǎng)站等。
3. 選自O(shè)nline Judge網(wǎng)站的題目由“網(wǎng)站名稱(chēng)+題目編號(hào)”組成,方便讀者查詢(xún)。
本書(shū)第5~14章由金百東編寫(xiě),第1~4章由崔曉松編寫(xiě)。因本書(shū)程序較多,故全書(shū)變量均用正體。本書(shū)在編寫(xiě)過(guò)程中得到了藍(lán)橋杯軟件和信息技術(shù)專(zhuān)業(yè)人才大賽組委會(huì)李艷萍、鄭未、單寶軍等多位、學(xué)者給予的專(zhuān)業(yè)建議和幫助指導(dǎo),提供了藍(lán)橋杯大賽的歷屆真題,同時(shí)也得到了國(guó)信藍(lán)橋教育科技股份有限公司的大力支持,在此一并表示感謝。
由于作者水平有限,書(shū)中難免有疏漏之處,懇請(qǐng)廣大讀者批評(píng)指正。
源程序
作者
2025年4月
金百東:東北師范大學(xué),從事程序設(shè)計(jì)與教學(xué)30年,碩士學(xué)歷,現(xiàn)任遼寧師范大學(xué)副教授。擔(dān)任歷屆藍(lán)橋杯程序設(shè)計(jì)競(jìng)賽指導(dǎo)教師,多年遼寧省大學(xué)生ACM程序競(jìng)賽指導(dǎo)教師。開(kāi)發(fā)了本科生畢業(yè)論文選題管理系統(tǒng)、本科生創(chuàng)新創(chuàng)業(yè)項(xiàng)目管理系統(tǒng)、課程計(jì)算機(jī)管理系統(tǒng),并已獲得應(yīng)用。在省級(jí)以上雜志發(fā)表論文18篇,已編寫(xiě)出版《C++STL基礎(chǔ)及應(yīng)用》、《Javaweb編程技術(shù)實(shí)用教程》、《Java設(shè)計(jì)模式及應(yīng)用案例》、《Android簡(jiǎn)明程序設(shè)計(jì)》等多部教材。
目錄
第1章競(jìng)賽預(yù)備知識(shí)1
1.1C語(yǔ)言常用函數(shù)1
1.1.1字符串?dāng)?shù)值轉(zhuǎn)換函數(shù)1
1.1.2字符串函數(shù)1
1.2STL標(biāo)準(zhǔn)模板庫(kù)3
1.2.1STL算法函數(shù)3
1.2.2STL容器11
第2章基礎(chǔ)題21
2.1窮舉法真題21
【例21】(第7屆)抽簽21
【例22】(第4屆)買(mǎi)不到的數(shù)目22
【例23】(第7屆)四平方和23
【例24】(第5屆)拼接平方數(shù)23
【例25】(第4屆)帶分?jǐn)?shù)25
2.2中等數(shù)學(xué)真題26
【例26】(第13屆)因數(shù)平方和26
【例27】(第12屆)和與乘積28
【例28】(第12屆)楊輝三角形31
2.3取余真題35
【例29】(第8屆)K倍區(qū)間35
【例210】(第13屆)取模36
【例211】(第13屆)近似GCD37
2.4最大公約數(shù)40
【例212】(第11屆)循環(huán)小數(shù)40
【例213】(第10屆)等差數(shù)列41
2.5排序真題42
【例214】(第13屆)重新排序42
【例215】(第14屆)平均45
2.6其他基本類(lèi)型真題47【例216】(第6屆)奇怪的數(shù)列47
【例217】(第13屆)X進(jìn)制減法49
【例218】(第13屆)數(shù)的拆分51
【例219】(第14屆)公因數(shù)匹配55
【例220】(第14屆)棋盤(pán)58
【例221】(第13屆)積木畫(huà)59
【例222】(第8屆)小計(jì)算器61
第3章時(shí)間65
【例31】(第9屆)航班時(shí)間65
【例32】(第11屆)回文日期67
【例33】(第8屆)日期問(wèn)題69
第4章字符串71
【例41】(第10屆)最長(zhǎng)子序列71
【例42】(第6屆)密文搜索72
【例43】(第5屆)排列序數(shù)73
【例44】(第9屆)等腰三角形74
【例45】(第11屆)重復(fù)字符串76
【例46】(第11屆)字符串編碼77
【例47】(第13屆)內(nèi)存空間79
【例48】(第14屆)子串簡(jiǎn)寫(xiě)82
第5章規(guī)律題85
【例51】(第9屆)約瑟夫環(huán)85
【例52】(第5屆)生物芯片87
【例53】(第10屆)數(shù)正方形88
【例54】(第14屆)平方差90
【例55】(第10屆)后綴表達(dá)式91
第6章二分法95
【例61】(第9屆)遞增三元組95
【例62】(第14屆)買(mǎi)二贈(zèng)一96
【例63】(第8屆二分法)分巧克力98
【例64】(第13屆)第K小的和100
【例65】(第13屆國(guó)賽)卡牌101
【例66】(第11屆)整數(shù)拼接103
【例67】(第13屆)統(tǒng)計(jì)子矩陣105
第7章優(yōu)先隊(duì)列與堆棧109
【例71】(第15屆)爬山109
【例72】(第13屆)砍竹子111
【例73】(第14屆)最大開(kāi)支114
【例74】(第14屆)整數(shù)刪除117
【例75】(第13屆)掃描游戲120
【例76】(第8屆)正則問(wèn)題124
第8章基本遞歸127
8.1遞歸引入127
8.2基本例題130
8.3遞歸真題135
【例81】(第13屆)最大數(shù)字135
【例82】(第4屆國(guó)賽)橫向打印二叉樹(shù)137
第9章圖論141
9.1深度優(yōu)先搜索141
9.2真題分析146
【例91】(第4屆)剪格子146
【例92】(第7屆)路徑之謎148
【例93】(第5屆求割點(diǎn))危險(xiǎn)系數(shù)150
【例94】(第9屆)版本分支152
【例95】(第13屆)掃雷155
【例96】(第8屆)發(fā)現(xiàn)環(huán)160
9.3寬度優(yōu)先搜索162
9.4真題分析165
【例97】(第6屆BFS)穿越雷區(qū)165
【例98】(第9屆)變暖167
【例99】(第10屆)大胖子走迷宮169
9.5并查集172
9.6真題分析176
【例910】(第8屆)合根植物176
【例911】(第10屆)修改數(shù)組178
【例912】(第13屆)推導(dǎo)部分和180
【例913】(第11屆)網(wǎng)絡(luò)分析183
9.7單源最短路徑186
9.7.1Dijkstra算法186
9.7.2SPFA算法188
9.8真題分析191
【例914】(第13屆)出差191
【例915】(第11屆)限高桿193
9.9最小生成樹(shù)與最近公共祖先197
9.10真題分析203
【例916】(第14屆)網(wǎng)絡(luò)穩(wěn)定性203
第10章動(dòng)態(tài)規(guī)劃208
10.1線(xiàn)性動(dòng)態(tài)規(guī)劃208
10.2真題分析208
【例101】(第7屆)密碼脫落208
【例102】(第12屆)砝碼稱(chēng)重210
【例103】(第8屆)包子湊數(shù)211
【例104】(第13屆)李白打酒加強(qiáng)版213
【例105】(第10屆)包含216
【例106】(第14屆)接龍數(shù)列218
10.3區(qū)間動(dòng)態(tài)規(guī)劃219
10.4真題分析224
【例107】(第9屆)搭積木224
【例108】(第14屆)更小的數(shù)227
【例109】(第14屆)合并石子229
10.5樹(shù)形動(dòng)態(tài)規(guī)劃232
10.6真題分析233
【例1010】(第12屆)左孩子右兄弟233
【例1011】(第6屆)生命之樹(shù)234
10.7數(shù)位動(dòng)態(tài)規(guī)劃237
10.8真題分析243
【例1012】(第12屆)二進(jìn)制問(wèn)題243
第11章區(qū)間運(yùn)算算法246
11.1樹(shù)狀數(shù)組246
11.1.1引入246
11.1.2原理246
11.1.3示例分析249
11.2線(xiàn)段樹(shù)254
11.2.1引入254
11.2.2基本操作255
11.2.3示例分析259
11.3ST表269
11.4真題分析271
【例111】(第13屆)最大公約數(shù)271
【例112】(第5屆)小朋友排隊(duì)274
【例113】(第8屆)油漆面積276
第12章數(shù)論281
12.1快速冪取模281
12.1.1遞歸快速冪281
12.1.2遞推快速冪281
12.2矩陣快速冪282
12.3歐拉函數(shù)283
12.4歐拉定理283
12.5擴(kuò)展歐幾里得284
12.6中國(guó)剩余定理285
12.7典型例題286
【例121】(第14屆)互素?cái)?shù)的個(gè)數(shù)286
【例122】(第5屆)斐波那契288
【例123】(第9屆)倍數(shù)問(wèn)題291
第13章計(jì)算幾何294
13.1基礎(chǔ)知識(shí)294
13.2進(jìn)階知識(shí)295
13.2.1求任意多邊形面積295
13.2.2皮克定理296
13.2.3辛普森積分297
【例131】(第11屆)平面切分298
【例132】(第4屆)車(chē)輪軸跡300
第14章游戲題305
14.1巴什博弈305
14.2尼姆博弈306
14.3真題分析308
【例141】(第5屆)矩陣翻硬幣308
【例142】(第8屆)填字母游戲309
參考文獻(xiàn)312