❶ 《演算法競賽入門經典(第2版)》pdf下載在線閱讀,求百度網盤雲資源
《演算法競賽入門經典(第2版)》(劉汝佳)電子書網盤下載免費在線閱讀
資源鏈接:
鏈接:https://pan..com/s/1hn9oYzCM-fjrw649WmvKyg
書名:演算法競賽入門經典(第2版)
作者:劉汝佳
豆瓣評分:8.9
出版社:清華大學出版社
出版年份:2014-6-1
頁數:464
內容簡介:
《演算法競賽入門經典(第2版)》是一本演算法競賽的入門與提高教材,把C/C++語言、演算法和解題有機地結合在一起,淡化理論,注重學習方法和實踐技巧。全書內容分為12 章,包括程序設計入門、循環結構程序設計、數組和字元串、函數和遞歸、C++與STL入門、數據結構基礎、暴力求解法、高效演算法設計、動態規劃初步、數學概念與方法、圖論模型與演算法、高級專題等內容,覆蓋了演算法競賽入門和提高所需的主要知識點,並含有大量例題和習題。書中的代碼規范、簡潔、易懂,不僅能幫助讀者理解演算法原理,還能教會讀者很多實用的編程技巧;書中包含的各種開發、測試和調試技巧也是傳統的語言、演算法類書籍中難以見到的。
《演算法競賽入門經典(第2版)》可作為全國青少年信息學奧林匹克聯賽(NOIP)復賽教材、全國青少年信息學奧林匹克競賽(NOI)和ACM國際大學生程序設計競賽(ACM/ICPC)的訓練資料,也可作為IT工程師與科研人員的參考用書。
作者簡介:
劉汝佳,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人才獲得展示自我的平台。
❷ 參加ACM大賽應該准備哪些課程
課程:
(1)基本演算法: 二分,分治,貪心
(2) 離散數學慎者離散數學動態規劃
(3) 搜索演算法:深度優先 搜索,廣度優先搜A*演算法 ,阿爾法貝塔剪枝
(4)數據結構:線段樹, 樹狀數組,並查集,Trie圖
(5)圖論問題:最小生成樹 最短路 強連通分量、橋和割點
(6)網路流演算法:基本的網路流演算法,Dinic演算法,帶上下界的網路流,最小費用流
(7)計算幾何:線與線求交,線與面求交,求凸包,半平面求交等
(8) 離散數學,高等數學,線性代數,初等數論,計算幾何
(9)計圓孝攜算機專業英語
(10)C++;基礎的遞歸、枚舉演算法
1.參賽隊伍最多由三名參賽隊員組成。
2.競賽中命題10題左右,試題描述為英文橘伏,比賽時間為5個小時,前四個小時可以實時看到排名,最後一小時封榜,無法看到排名。
3.競賽可以使用的語言:Java, C, C++, Kotlin 和 Python。
4.重點考察選手的演算法和程序設計能力,不考察實際工程中常用的系統編程,多線程編程等等;
5.選手可攜帶任何非電子類資料,包括書籍和列印出來的程序等,部分賽區會對選手攜帶的紙質資料做限制。
6.評委負責將結果(正確或出錯的類型)通過網路盡快返回給選手,除此之外不提供任何額外幫助;
7.每個題目對應一種顏色的氣球,通過該題目的隊伍會得到對應顏色氣球。每道題目第一支解決掉它的隊還會額外獲得一個「FIRST PROBLEM SOLVED」的氣球。
❸ 推薦一些關於演算法的書籍
1、數據結構與演算法分析:C語言描述(適合入門)
這本書相對於演算法導論要簡單一些,更適合入門。演算法導論其實有比較強的理論性,看起來比較吃力。
《數據結構與演算法分析:C語言描述》內容簡介:書中詳細介紹了當前流行的論題和新的變化,討論了演算法設計技巧,並在研究演算法的性能、效率以及對運行時間分析的基礎上考查了一些高級數據結構,從歷史的角度和近年的進展對數據結構的活躍領域進行了簡要的概括。由於《數據結構與演算法分析:C語言描述(原書第2版)》選材新穎,方法實用,題例豐富,取捨得當。《數據結構與演算法分析:C語言描述》的目的是培養學生良好的程序設計技巧和熟練的演算法分析能力,使得他們能夠開發出高效率的程序。從服務於實踐又鍛煉學生實際能力出發,書中提供了大部演算法的C程序和偽碼常式。
2、演算法設計與分析基礎(適合入門)
作者基於豐富的教學經驗,開發了一套對演算法進行分類的新方法。這套方法站在通用問題求解策略的高度,能對現有的大多數演算法都能進行准確分類,從而使本書的讀者能夠沿著一條清晰的、一致的、連貫的思路來探索演算法設計與分析這一迷人領域。本書作為第2版,相對第1版增加了新的習題,還增加了「迭代改進」一章,使得原來的分類方法更加完善。
3.0、演算法引論:一種創造性方法(適合入門)
和普通的演算法書不同,這本書從創造性的角度出發——如果說演算法導論講的是有哪些演算法,那麼演算法引論講的就是如何創造演算法。結合前面的演算法設計與分析基礎,這本書把能解決的演算法問題數量擴大了一個數量級。
3.1 演算法競賽 | 信息學奧賽一本通(算競入門)
AlphaWA同學推薦的入門書籍,網上沒有PDF版本,自己去淘寶買嘍。
3.2 演算法競賽 | 演算法競賽進階指南(算競進階)
❹ 數據結構和演算法的經典教材
《演算法導論》 《數據結構與演算法分析—C語言描述》 《計算機程序設計藝術》 《計算機演算法設計與分析》
教材是供教學用的資料,如課本、講義等。教材的定義有廣義和狹義之分。廣義的教材指課堂上和課堂外教師和學生使用的所有教學材料,比如課本、練習冊、活動冊、故事書等等。教師自己編寫或設計的材料也可稱之為教學材料。計算機網路上使用的學習材料也是教學材料。
總之,廣義的教材不一定是裝訂成冊或正式出版的書本。凡是有利於學習者增長知識或發展技能的材料都可稱之為教材。狹義的教材即教科書。教科書是一個課程的核心教學材料。教科書除學生用書外,幾乎無一例外地配有教師用書,很多還配有練習冊、活動冊以及配套讀物、音像帶等等。
❺ Scratch -- Makey Makey 演算法課程
1. 枚舉法 -- 百錢百雞 M:控制購買數量
2. 遞推法 -- 精明的兔子(斐波那契)
3. 遞歸法 -- 漢諾塔 M:簡易漢諾塔
(https://scratch.mit.e/projects/67961040/)
4. 冒泡排序 -- 吃豆人 M:控制吃豆人或者直接點大小(https://scratch.mit.e/projects/107749084/)
(https://scratch.mit.e/projects/120325225/)
5. 貪心法 -- 田鼠糧倉 M:控制購物數量
6. 深度搜索 -- 自動尋路 https://scratch.mit.e/projects/73610308/
7. 回溯演算法 -- 自動迷宮 https://scratch.mit.e/projects/17358777/
8. Shunting Yard Algorithm -- 計算器 https://scratch.mit.e/projects/25237375/ M:計算器
9. 模糊演算法 -- 濾鏡 https://scratch.mit.e/projects/74217022/ M:滑動條
10. 質心演算法 -- 自由自在的三角形 https://scratch.mit.e/projects/82717794/#editor
11. 尋跡演算法 -- 尋跡小車 https://scratch.mit.e/projects/96272025/
12. 保證演算法 -- 走迷宮 https://scratch.mit.e/projects/2814737/#editor
13. 點燈游戲 -- https://scratch.mit.e/projects/1765283/
14. 回溯法 -- 八皇後游戲 https://scratch.mit.e/projects/142926062/
15 數獨游戲 -- https://scratch.mit.e/projects/135695216/
【復雜游戲;
吃豆人:https://scratch.mit.e/projects/117474890/
3D賽車 https://scratch.mit.e/projects/86222656/#editor
手繪圓形:https://scratch.mit.e/projects/68999758/#editor
3D圖形:https://scratch.mit.e/projects/127249376/#editor
打井:https://scratch.mit.e/projects/138013519/
密碼鎖: https://scratch.mit.e/projects/114259151/
水杯游戲:https://scratch.mit.e/projects/90643951/】