本書的編寫是為了幫助讀者理解基本的算法思想,學會編寫高效的程序來解決問題。全書共6章,第1章是概述,簡要介紹了算法與算法競賽;第2章是窮舉算法與貪心算法,介紹用計算機程序解決問題的最基本方法論;第3章是隨機,介紹如何利用概率與期望優化算法的效率;第4章是搜索,介紹如何用更靈活的方式遍歷每一種可行解;第5章是動態規劃,通過狀態間的轉移,巧妙地規劃最優解;第6章是分治,介紹如何將問題拆分為易於解決的小問題。本書大多數例題是以算法競賽題目的形式給出的,因為該形式能夠保證問題描述的嚴謹性,書中使用的編程語言也是算法競賽中最常用的C++語言。同時,本書不拘泥於算法競賽,在第2章至第6章,每一章的最後都有一段閱讀材料,介紹算法有趣的應用案例,從而幫助讀者拓寬思維。
段忠傑,華東師範大學在讀博士,在CIKM等學術會議上發表有論文成果,曾獲ACMICPC亞洲區域賽金獎,曾在計蒜客從事信息學競賽教學和教研工作,目前在阿里巴巴合作項目中進行多模態模型研究工作。
顧業鳴,碩士畢業於華東師範大學,目前就職于字節跳動,擔任前端開發工程師,曾獲ACMICPC亞洲區域賽銀獎,有多年青少年編程競賽教學經驗。