CCF 信息學(xué)奧賽基礎(chǔ)篇 中國(guó)計(jì)算機(jī)學(xué)會(huì)
定 價(jià):99 元
當(dāng)前圖書(shū)已被 1 所學(xué)校薦購(gòu)過(guò)!
查看明細(xì)
- 作者:中國(guó)計(jì)算機(jī)學(xué)會(huì)
- 出版時(shí)間:2025/8/1
- ISBN:9787111782339
- 出 版 社:機(jī)械工業(yè)出版社
- 中圖法分類(lèi):TP311.1
- 頁(yè)碼:
- 紙張:膠版紙
- 版次:
- 開(kāi)本:16開(kāi)
本書(shū)是“CCF全國(guó)青少年信息學(xué)奧林匹克競(jìng)賽教程”叢書(shū)的第二冊(cè),旨在普及計(jì)算機(jī)科學(xué)與程序設(shè)計(jì)知識(shí)。書(shū)中遵循由淺入深、邏輯嚴(yán)密的編寫(xiě)思路,輔以豐富的實(shí)例解析,引領(lǐng)讀者逐步提升計(jì)算思維能力。全書(shū)共四章,涉及C++程序設(shè)計(jì)進(jìn)階、數(shù)據(jù)結(jié)構(gòu)及其應(yīng)用、算法設(shè)計(jì)、數(shù)學(xué)運(yùn)用等內(nèi)容,全面覆蓋NOI競(jìng)賽大綱所要求的基礎(chǔ)知識(shí)。根據(jù)競(jìng)賽的特點(diǎn),書(shū)中還對(duì)一些常見(jiàn)的難點(diǎn)和易錯(cuò)點(diǎn)進(jìn)行了深入的解析。 本書(shū)可作為信息學(xué)奧林匹克競(jìng)賽的教學(xué)用書(shū),也可作為青少年學(xué)習(xí)計(jì)算機(jī)科學(xué)知識(shí)、了解信息學(xué)奧賽的參考資料。
本書(shū)由中國(guó)計(jì)算機(jī)學(xué)會(huì)組編,適合NOI參賽師生/信息學(xué)愛(ài)好者/程序設(shè)計(jì)競(jìng)賽愛(ài)好者。 本書(shū)特色: 關(guān)注學(xué)習(xí)過(guò)程,強(qiáng)調(diào)反思意識(shí)解決, 引導(dǎo)主動(dòng)探究,建構(gòu)知識(shí)體系。
在信息學(xué)的廣闊天地中,編程不僅是一種技術(shù),更是一門(mén)藝術(shù)。自1984年中國(guó)計(jì)算機(jī)學(xué)會(huì)舉辦青少年信息學(xué)奧林匹克競(jìng)賽以來(lái),編程逐漸成為青少年科技教育的重要組成部分。這種教育不僅培養(yǎng)了無(wú)數(shù)青少年的編程能力,也激發(fā)了他們對(duì)計(jì)算機(jī)科學(xué)的熱情和探索欲望。近年來(lái),CCF組織編撰了《全國(guó)青少年信息學(xué)奧林匹克系列競(jìng)賽大綱》(以下簡(jiǎn)稱(chēng)“NOI競(jìng)賽大綱”)、《信息學(xué)奧林匹克辭典》,本書(shū)正是在此基礎(chǔ)之上編寫(xiě)而成的,旨在為廣大青少年提供一本深入淺出、實(shí)用高效的編程教材。我們發(fā)現(xiàn),盡管已經(jīng)出版了不少相關(guān)書(shū)籍,但真正能夠契合青少年學(xué)習(xí)特點(diǎn)、兼顧理論深度與實(shí)踐應(yīng)用、精準(zhǔn)覆蓋NOI競(jìng)賽大綱的教材仍然稀缺。因此,我們希望通過(guò)這本“不一樣”的書(shū),為讀者搭建一座從概念理解到實(shí)際運(yùn)用的橋梁,讓中小學(xué)編程愛(ài)好者能夠迅速成長(zhǎng)。本書(shū)具有以下幾個(gè)突出特點(diǎn):1循序漸進(jìn),深入淺出我們精心設(shè)計(jì)了一條由淺入深的學(xué)習(xí)路徑。通過(guò)“情境導(dǎo)航”環(huán)節(jié),從生活常識(shí)出發(fā),引入問(wèn)題。通過(guò)豐富的圖示和通俗易懂的語(yǔ)言講解核心概念,再逐步過(guò)渡到更復(fù)雜的算法實(shí)現(xiàn)。這種漸進(jìn)式的學(xué)習(xí)方法旨在激發(fā)讀者的學(xué)習(xí)興趣,建立直觀的算法和數(shù)據(jù)結(jié)構(gòu)認(rèn)識(shí),并避免因概念陡增引起的畏難情緒。2問(wèn)題導(dǎo)向,實(shí)踐驅(qū)動(dòng)通過(guò)“問(wèn)題抽象”環(huán)節(jié),從分析問(wèn)題入手,抽象出知識(shí)或概念。每節(jié)都從一個(gè)實(shí)際問(wèn)題(有些是經(jīng)典競(jìng)賽題)出發(fā),引導(dǎo)讀者分析問(wèn)題、思考解決方案,然后學(xué)習(xí)相關(guān)算法原理,找出解決問(wèn)題的基本方法,最后通過(guò)程序代碼來(lái)鞏固所學(xué)知識(shí)。這種問(wèn)題導(dǎo)向的方法不僅能激發(fā)讀者的學(xué)習(xí)興趣,更能培養(yǎng)他們解決實(shí)際問(wèn)題的能力。3強(qiáng)調(diào)思維訓(xùn)練除了傳授具體的算法知識(shí)之外,我們十分注重培養(yǎng)讀者的算法思維。每節(jié)都設(shè)有“知識(shí)探究”“實(shí)踐應(yīng)用”“總結(jié)提升”等環(huán)節(jié),引導(dǎo)并鼓勵(lì)讀者獨(dú)立思考、大膽假設(shè)、認(rèn)真求證。通過(guò)這種方式,我們希望讀者不僅學(xué)會(huì)“是什么”,更能理解“為什么”。通過(guò)給出注意事項(xiàng)和拓展方向,引導(dǎo)讀者進(jìn)一步鉆研,最終達(dá)到舉一反三、觸類(lèi)旁通的目的。4緊扣競(jìng)賽實(shí)戰(zhàn)作為一本面向信息學(xué)競(jìng)賽的教材,我們特別關(guān)注了競(jìng)賽中的重點(diǎn)和難點(diǎn)。本書(shū)圍繞著信息學(xué)競(jìng)賽的核心需求編寫(xiě),精選了很多經(jīng)典的競(jìng)賽題目,通過(guò)詳盡的解析和豐富的實(shí)例,向讀者展示從問(wèn)題分析到解決方案的全過(guò)程。此外,根據(jù)競(jìng)賽的特點(diǎn),對(duì)一些常見(jiàn)的競(jìng)賽難點(diǎn)和易錯(cuò)點(diǎn)進(jìn)行了深入的剖析和講解。我們希望這些內(nèi)容能夠幫助讀者更快地適應(yīng)競(jìng)賽節(jié)奏,提高解題速度和準(zhǔn)確率。5注重知識(shí)體系構(gòu)建在信息學(xué)領(lǐng)域,編程和算法是兩項(xiàng)不可或缺的核心技能。本書(shū)作為系列教材的基礎(chǔ)篇,涵蓋了NOI競(jìng)賽大綱中入門(mén)級(jí)的算法與數(shù)據(jù)結(jié)構(gòu)知識(shí),這些知識(shí)是構(gòu)建信息學(xué)競(jìng)賽完整知識(shí)體系的重要環(huán)節(jié)。本書(shū)適合參加信息學(xué)奧林匹克競(jìng)賽的學(xué)生使用,同時(shí)也適合對(duì)信息學(xué)算法感興趣的讀者閱讀。我們希望本書(shū)能夠幫助讀者在競(jìng)賽中取得更好的成績(jī),同時(shí)也為他們未來(lái)的學(xué)習(xí)和發(fā)展打下堅(jiān)實(shí)的基礎(chǔ)。本書(shū)是一把開(kāi)啟智慧之門(mén)的鑰匙,是一本培養(yǎng)學(xué)習(xí)方法和思維習(xí)慣的教科書(shū)。我們希望每一位讀者在學(xué)習(xí)本書(shū)的過(guò)程中,不僅能學(xué)會(huì)編程,更能學(xué)會(huì)如何思考和探索。作為編者,我們深知編寫(xiě)一本好的教材何等艱難。盡管我們傾注了大量心血,仍難免存在疏漏和不足。我們真誠(chéng)地希望能得到廣大讀者、教育工作者和業(yè)內(nèi)專(zhuān)家的批評(píng)指正,以便在后續(xù)版本中不斷完善。最后,感謝所有為本書(shū)付出努力的人。感謝朱全民、宋新波等專(zhuān)家的指導(dǎo)和幫助,感謝所有讀者對(duì)本書(shū)的關(guān)注和支持。希望本書(shū)能夠成為你備戰(zhàn)信息學(xué)奧林匹克競(jìng)賽的良師益友,陪伴你一起迎接挑戰(zhàn),創(chuàng)造輝煌。讓我們共同在信息學(xué)的世界中探索未知,享受解決問(wèn)題的樂(lè)趣,不斷前行!江 濤2024年7月
江濤,1965年出生,1986年畢業(yè)于安徽師范大學(xué)數(shù)學(xué)專(zhuān)業(yè)。廣東省佛山市南海區(qū)石門(mén)中學(xué)特級(jí)教師、信息學(xué)國(guó)際金牌教練。培養(yǎng)出7位IOI選手、30多位國(guó)家集訓(xùn)隊(duì)隊(duì)員,專(zhuān)注信息學(xué)培訓(xùn)方法研究,編寫(xiě)了4本相關(guān)的著作和教材,完成2個(gè)省級(jí)課題。曾獲全國(guó)先進(jìn)工作者、全國(guó)五一勞動(dòng)獎(jiǎng)?wù)、?guó)務(wù)院政府津貼、全國(guó)信息學(xué)十杰指導(dǎo)教師等榮譽(yù)
叢書(shū)序前言第一章 C++程序設(shè)計(jì)進(jìn)階第一節(jié) 二維數(shù)組3一、情境導(dǎo)航3二、問(wèn)題抽象3三、知識(shí)探究4(一) 二維數(shù)組的定義4(二) 二維數(shù)組的輸入、輸出4(三) 貪吃蛇問(wèn)題5四、實(shí)踐應(yīng)用6五、總結(jié)提升9第二節(jié) 多維數(shù)組11一、情境導(dǎo)航11二、問(wèn)題抽象12三、知識(shí)探究12(一) 三維數(shù)組的定義12(二) 三維數(shù)組的輸入、輸出13(三) 統(tǒng)計(jì)石頭問(wèn)題13四、實(shí)踐應(yīng)用15五、總結(jié)提升19第三節(jié) 常用數(shù)學(xué)函數(shù)23一、情境導(dǎo)航23二、問(wèn)題抽象23三、知識(shí)探究24(一) 絕對(duì)值函數(shù)24(二) 四舍五入函數(shù)24(三) 取下整函數(shù)(地板函數(shù))25(四) 取上整函數(shù)(天花板函數(shù))26(五) 平方根函數(shù)26(六) 常用三角函數(shù)27(七) 對(duì)數(shù)函數(shù)27(八) 冪函數(shù)28四、實(shí)踐應(yīng)用29五、總結(jié)提升31第四節(jié) 自定義函數(shù)的參數(shù)33一、情境導(dǎo)航33二、問(wèn)題抽象33三、知識(shí)探究34(一) 形參和實(shí)參34(二) 參數(shù)的傳遞方式34四、實(shí)踐應(yīng)用36五、總結(jié)提升38第五節(jié) 結(jié)構(gòu)體與聯(lián)合體42一、情境導(dǎo)航42二、問(wèn)題抽象43三、知識(shí)探究44(一) 結(jié)構(gòu)體的引入44(二) 結(jié)構(gòu)體的定義44(三) 創(chuàng)建結(jié)構(gòu)體變量45(四) 訪問(wèn)結(jié)構(gòu)體變量的成員45(五) 初始化結(jié)構(gòu)體變量的成員45(六) 結(jié)構(gòu)體數(shù)組46(七) 結(jié)構(gòu)體作為函數(shù)參數(shù)46(八) 圖書(shū)館里的尋書(shū)游戲46四、實(shí)踐應(yīng)用48五、總結(jié)提升51第六節(jié) 指針類(lèi)型60一、情境導(dǎo)航60二、問(wèn)題抽象60三、知識(shí)探究61(一) 什么是指針61(二) 如何聲明指針61(三) 指針的初始化62(四) 使用指針62(五) 指針和函數(shù)63(六) 指針的算術(shù)運(yùn)算63(七) 指針與數(shù)組63(八) 動(dòng)態(tài)分配內(nèi)存64四、實(shí)踐應(yīng)用66五、總結(jié)提升68第七節(jié) STL(標(biāo)準(zhǔn)模板庫(kù))——算法函數(shù)72一、情境導(dǎo)航72二、問(wèn)題抽象72三、知識(shí)探究73(一) 什么是STL73(二) 算法函數(shù)max、min、swap73(三) 算法函數(shù)sort75四、實(shí)踐應(yīng)用77五、總結(jié)提升80第八節(jié) STL(標(biāo)準(zhǔn)模板庫(kù))——線性容器85一、情境導(dǎo)航85二、問(wèn)題抽象86三、知識(shí)探究87(一) STL的線性容器87(二) STL的向量(vector)87(三) 向量的成員函數(shù)89(四) STL的鏈表(list)90(五) STL的隊(duì)列(queue)92(六) STL的棧(stack)93(七) 線性容器相關(guān)函數(shù)總結(jié)95四、實(shí)踐應(yīng)用96五、總結(jié)提升98第二章 數(shù)據(jù)結(jié)構(gòu)及其運(yùn)用第一節(jié) 線性結(jié)構(gòu)——鏈表103一、情境導(dǎo)航103二、問(wèn)題抽象103三、知識(shí)探究104(一) 鏈表的基本概念104(二) 鏈表的分類(lèi)104(三) 鏈表的操作105(四) 鏈表操作的STL list實(shí)現(xiàn)105(五) 鏈表操作的數(shù)組模擬實(shí)現(xiàn)106(六) 雙向鏈表操作的數(shù)組模擬實(shí)現(xiàn)109(七) 循環(huán)鏈表操作的數(shù)組模擬實(shí)現(xiàn)111(八) 為什么學(xué)習(xí)鏈表操作的數(shù)組模擬實(shí)現(xiàn)112四、實(shí)踐應(yīng)用112五、總結(jié)提升116第二節(jié) 線性結(jié)構(gòu)——隊(duì)列和棧116一、情境導(dǎo)航116二、問(wèn)題抽象117三、知識(shí)探究117(一) 什么是隊(duì)列117(二) 隊(duì)列的基本操作117(三) 隊(duì)列操作的STL queue實(shí)現(xiàn)118(四) 隊(duì)列操作的數(shù)組實(shí)現(xiàn)119(五) 與隊(duì)列類(lèi)似的棧121(六) 棧的基本操作121(七) 棧操作的STL stack實(shí)現(xiàn)121(八) 棧操作的數(shù)組實(shí)現(xiàn)122四、實(shí)踐應(yīng)用124五、總結(jié)提升130第三節(jié) 樹(shù)的引入133一、情境導(dǎo)航133二、問(wèn)題抽象134三、知識(shí)探究134(一) 什么是樹(shù)134(二) 樹(shù)的表示與存儲(chǔ)135(三) 樹(shù)的基本操作136四、實(shí)踐應(yīng)用137五、總結(jié)提升139第四節(jié) 二叉樹(shù)141一、情境導(dǎo)航141二、問(wèn)題抽象142三、知識(shí)探究142(一) 什么是二叉樹(shù)142(二) 二叉樹(shù)的性質(zhì)143(三) 二叉樹(shù)的表示與存儲(chǔ)143(四) 二叉樹(shù)的基本操作144四、實(shí)踐應(yīng)用144五、總結(jié)提升146第五節(jié) 二叉搜索樹(shù)150一、情境導(dǎo)航150二、問(wèn)題抽象151三、知識(shí)探究151(一) 什么是二叉搜索樹(shù)151(二) 二叉搜索樹(shù)的插入操作152(三) 二叉搜索樹(shù)的查找操作153(四) 二叉搜索樹(shù)的遍歷操作154四、實(shí)踐應(yīng)用155五、總結(jié)提升157第六節(jié) 哈夫曼樹(shù)160一、情境導(dǎo)航160二、問(wèn)題抽象160三、知識(shí)探究161(一) 什么是哈夫曼樹(shù)161(二) 構(gòu)建哈夫曼樹(shù)161(三) 哈夫曼樹(shù)的性質(zhì)162(四) 哈夫曼編碼162(五) 哈夫曼編碼的實(shí)現(xiàn)163四、實(shí)踐應(yīng)用166五、總結(jié)提升169第七節(jié) 完全二叉樹(shù)170一、情境導(dǎo)航170二、問(wèn)題抽象170三、知識(shí)探究171(一) 什么是完全二叉樹(shù)171(二) 完全二叉樹(shù)的平衡性質(zhì)171(三) 完全二叉樹(shù)的數(shù)組實(shí)現(xiàn)171(四) 什么是堆173(五) 堆的操作173四、實(shí)踐應(yīng)用175五、總結(jié)提升177第八節(jié) 圖的定義和存儲(chǔ)181一、情境導(dǎo)航181二、問(wèn)題抽象182三、知識(shí)探究183(一) 什么是圖183(二) 圖的性質(zhì)183(三) 什么是圖的鄰接矩陣184(四) 圖的鄰接矩陣的實(shí)現(xiàn)185(五) 圖的鄰接矩陣的優(yōu)缺點(diǎn)186(六) 圖的鄰接鏈表186(七) 圖的鄰接鏈表的實(shí)現(xiàn)187(八) 圖的鄰接鏈表的優(yōu)缺點(diǎn)188四、實(shí)踐應(yīng)用188五、總結(jié)提升190第三章 算法設(shè)計(jì)第一節(jié) 算法基礎(chǔ)195一、算法概述195(一) 算法的定義195(二) 算法的特性195二、算法的描述195(一) 自然語(yǔ)言描述195(二) 流程圖描述196(三) 偽代碼描述197(四) 三種描述方式的比較197第二節(jié) 基礎(chǔ)算法1——貪心法198一、情境導(dǎo)航198二、問(wèn)題抽象198三、知識(shí)探究199(一) 貪心法的定義與原理199(二) 貪心法的適用場(chǎng)景199(三) 分發(fā)餅干問(wèn)題199四、實(shí)踐應(yīng)用201五、總結(jié)提升206第三節(jié) 基礎(chǔ)算法2——遞推法208一、情境導(dǎo)航208二、問(wèn)題抽象209三、知識(shí)探究209(一) 遞推法的基本步驟209(二) 遞推法的適用場(chǎng)景210四、實(shí)踐應(yīng)用210五、總結(jié)提升213第四節(jié) 基礎(chǔ)算法3——遞歸法214一、情境導(dǎo)航214二、問(wèn)題抽象215三、知識(shí)探究216(一) 什么是遞歸法216(二) 斐波那契數(shù)列的遞歸法描述216(三) 遞歸法的優(yōu)點(diǎn)216四、實(shí)踐應(yīng)用217五、總結(jié)提升221第五節(jié) 基礎(chǔ)算法4——二分法222一、情境導(dǎo)航222二、問(wèn)題抽象223三、知識(shí)探究223(一) 二分法原理223(二) 二分法的基本步驟223四、實(shí)踐應(yīng)用225五、總結(jié)提升229第六節(jié) 基礎(chǔ)算法5——倍增法233一、情境導(dǎo)航233二、問(wèn)題抽象233三、知識(shí)探究234四、實(shí)踐應(yīng)用236五、總結(jié)提升238第七節(jié) 基礎(chǔ)算法6——前綴和245一、情境導(dǎo)航245二、問(wèn)題抽象245三、知識(shí)探究245(一) 前綴和的定義與優(yōu)勢(shì)245(二) 前綴和的適用場(chǎng)景246(三) 用前綴和解決倉(cāng)庫(kù)統(tǒng)計(jì)問(wèn)題246四、實(shí)踐應(yīng)用248五、總結(jié)提升250(一) 注意事項(xiàng)250(二) 算法復(fù)雜度250(三) 前綴和的優(yōu)缺點(diǎn)250第八節(jié) 數(shù)值處理算法256一、情境導(dǎo)航256二、問(wèn)題抽象257三、知識(shí)探究257(一) 高精度加法257(二) 高精度減法259(三) 高精度乘法262四、實(shí)踐應(yīng)用264五、總結(jié)提升265第九節(jié) 排序算法269一、情境導(dǎo)航269二、問(wèn)題抽象270三、知識(shí)探究271(一) 冒泡排序271(二) 選擇排序273(三) 插入排序275四、實(shí)踐應(yīng)用276五、總結(jié)提升278第十節(jié) 搜索算法281一、情境導(dǎo)航281二、問(wèn)題抽象282三、知識(shí)探究282(一) 深度優(yōu)先搜索282(二) 廣度優(yōu)先搜索287四、實(shí)踐應(yīng)用290五、總結(jié)提升292第十一節(jié) 圖論算法298一、情境導(dǎo)航298二、問(wèn)題抽象299三、知識(shí)探究299(一) 圖的深度優(yōu)先搜索299(二) 圖的廣度優(yōu)先搜索303四、實(shí)踐應(yīng)用305五、總結(jié)提升308第十二節(jié) 動(dòng)態(tài)規(guī)劃1——簡(jiǎn)單一維動(dòng)態(tài)規(guī)劃312一、情境導(dǎo)航312二、問(wèn)題抽象312三、知識(shí)探究313(一) 動(dòng)態(tài)規(guī)劃概述315(二) 動(dòng)態(tài)規(guī)劃的原理315四、實(shí)踐應(yīng)用317五、總結(jié)提升320第十三節(jié) 動(dòng)態(tài)規(guī)劃2——簡(jiǎn)單背包類(lèi)型動(dòng)態(tài)規(guī)劃321一、情境導(dǎo)航321二、問(wèn)題抽象322三、知識(shí)探究329四、實(shí)踐應(yīng)用331五、總結(jié)提升334ⅩⅦⅩⅧ第十四節(jié) 動(dòng)態(tài)規(guī)劃3——簡(jiǎn)單區(qū)間類(lèi)型動(dòng)態(tài)規(guī)劃335一、情境導(dǎo)航335二、問(wèn)題抽象336三、知識(shí)探究337四、實(shí)踐應(yīng)用340五、總結(jié)提升344第四章 數(shù)學(xué)運(yùn)用第一節(jié) 初等數(shù)論351一、情境導(dǎo)航351二、問(wèn)題抽象351三、知識(shí)探究352(一) 整除352(二) 因數(shù)(因子)352(三) 倍數(shù)352(四) 指數(shù)352(五) 質(zhì)數(shù)與合數(shù)352(六) 整數(shù)唯一分解定理352四、實(shí)踐應(yīng)用357五、總結(jié)提升363第二節(jié) 組合數(shù)學(xué)368一、情境導(dǎo)航368二、問(wèn)題抽象369三、知識(shí)探究369(一) 加法原理與乘法原理369(二) 排列與組合370四、實(shí)踐應(yīng)用371五、總結(jié)提升374附錄 本書(shū)內(nèi)容與NOI競(jìng)賽大綱的對(duì)應(yīng)關(guān)系379