本書對程序設計競賽中的基礎算法和經典問題進行了匯總,分為準備篇、初級篇、中級篇與高級篇4章。作者結合自己豐富的參賽經驗,對嚴格篩選的110多道各類試題進行了由淺入深、由易及難的細致講解,并介紹了許多實用技巧。每章后附有習題,供讀者練習,鞏固所學。
世界程序設計高手的經驗總結
[ACM-ICPC全球總冠軍]巫澤俊主譯
日本ACM-ICPC參賽者人手一冊
《挑戰程序設計競賽(第2版)》對程序設計競賽中的基礎算法和經典問題進行了匯總,分為準備篇、初級篇、中級篇與高級篇4章。作者結合自己豐富的參賽經驗,對嚴格篩選的110多道各類試題進行了由淺入深、由易及難的細致講解,并介紹了許多實用技巧。每章后附有習題,供讀者練習,鞏固所學。
秋葉拓哉
Google Code Jam 2010 第9名
ACM-ICPC World Finals 2012 第11名
TopCoder Open 2012 Algorithm 第4名
昵稱iwi
巖田陽一
Google Code Jam 2009 第3名
TopCoder Open 2010 Marathon 冠軍
IPSC 2010 個人組 冠軍
昵稱wata
北川宜稔
ACM-ICPC World Finals 2010第16名
昵稱kita_masa
譯者簡介:
巫澤俊
ACM-ICPC World Finals 2009 第6名
ACM-ICPC World Finals 2011 冠軍
Google Code Jam 2012 第7名
昵稱watashi和rejudge
莊俊元
ACM-ICPC Asia Phuket Regional 2011 冠軍
2012年躋身ACM-ICPC World Finals以及百度Astar總決賽
昵稱navi和navimoe
李津羽
浙江大學2011級計算機系博士生
在浙大CAD&CG實驗室從事科研工作
第1章 蓄勢待發--準備篇
1.1 何謂程序設計競賽
1.2 最負盛名的程序設計競賽
1.2.1 世界規模的大賽--Google Code Jam(GCJ)
1.2.2 向高排名看齊!--TopCoder
1.2.3 歷史最悠久的競賽-- ACM-ICPC
1.2.4 面向中學生的信息學奧林匹克競賽--JOI-IOI
1.2.5 通過網絡自動評測--Online Judge(OJ)
1.3 本書的使用方法
1.3.1 本書所涉及的內容
1.3.2 所用的編程語言
1.3.3 題目描述的處理
1.3.4 程序結構
1.3.5 練習題第1章 蓄勢待發--準備篇
1.1 何謂程序設計競賽
1.2 最負盛名的程序設計競賽
1.2.1 世界規模的大賽--Google Code Jam(GCJ)
1.2.2 向高排名看齊!--TopCoder
1.2.3 歷史最悠久的競賽-- ACM-ICPC
1.2.4 面向中學生的信息學奧林匹克競賽--JOI-IOI
1.2.5 通過網絡自動評測--Online Judge(OJ)
1.3 本書的使用方法
1.3.1 本書所涉及的內容
1.3.2 所用的編程語言
1.3.3 題目描述的處理
1.3.4 程序結構
1.3.5 練習題
1.3.6 讀透本書后更上一層樓的練習方法
1.4 如何提交解答
1.4.1 POJ的提交方法
1.4.2 GCJ的提交方法
1.5 以高效的算法為目標
1.5.1 什么是復雜度
1.5.2 關于運行時間
1.6 輕松熱身
1.6.1 先從簡單題開始
1.6.2 POJ的題目Ants
1.6.3 難度增加的抽簽問題
第2章 初出茅廬--初級篇
2.1 最基礎的“窮竭搜索”
2.1.1 遞歸函數
2.1.2 棧
2.1.3 隊列
2.1.4 深度優先搜索
2.1.5 寬度優先搜索
2.1.6 特殊狀態的枚舉
2.1.7 剪枝
2.2 一往直前!貪心法
2.2.1 硬幣問題
2.2.2 區間問題
2.2.3 字典序最小問題
2.2.4 其他例題
2.3 記錄結果再利用的“動態規劃”
2.3.1 記憶化搜索與動態規劃
2.3.2 進一步探討遞推關系
2.3.3 有關計數問題的DP
2.4 加工并存儲數據的數據結構
2.4.1 樹和二叉樹
2.4.2 優先隊列和堆
2.4.3 二叉搜索樹
2.4.4 并查集
2.5 它們其實都是“圖”
2.5.1 圖是什么
2.5.2 圖的表示
2.5.3 圖的搜索
2.5.4 最短路問題
2.5.5 最小生成樹
2.5.6 應用問題
2.6 數學問題的解題竅門
2.6.1 輾轉相除法
2.6.2 有關素數的基礎算法
2.6.3 模運算
2.6.4 快速冪運算
2.7 一起來挑戰GCJ的題目(1)
2.7.1 Minimum Scalar Product
2.7.2 Crazy Rows
2.7.3 Bribe the Prisoners
2.7.4 Millionaire
第3章 出類拔萃--中級篇
3.1 不光是查找值!“二分搜索”
3.1.1 從有序數組中查找某個值
3.1.2 假定一個解并判斷是否可行
3.1.3 較大化最小值
3.1.4 較大化平均值
3.2 常用技巧精選(一)
3.2.1 尺取法
3.2.2 反轉(開關問題)
3.2.3 彈性碰撞
3.2.4 折半枚舉(雙向搜索)
3.2.5 坐標離散化
3.3 活用各種數據結構
3.3.1 線段樹
3.3.2 Binary Indexed Tree
3.3.3 分桶法和平方分割
3.4 熟練掌握動態規劃
3.4.1 狀態壓縮DP
3.4.2 矩陣的冪
3.4.3 利用數據結構高效求解
3.5 借助水流解決問題的網絡流
3.5.1 較大流
3.5.2 最小割
3.5.3 二分圖匹配
3.5.4 一般圖匹配
3.5.5 匹配、邊覆蓋、獨立集和頂點覆蓋
3.5.6 最小費用流
3.5.7 應用問題
3.6 與平面和空間打交道的計算幾何
3.6.1 計算幾何基礎
3.6.2 極限情況
3.6.3 平面掃描
3.6.4 凸包
3.6.5 數值積分
3.7 一起來挑戰GCJ的題目(2)
3.7.1 Numbers
3.7.2 No Cheating
3.7.3 Stock Charts
3.7.4 Watering Plants
3.7.5 Number Sets
3.7.6 Wi-fi Towers
第4章 登峰造極--高級篇
4.1 更加復雜的數學問題
4.1.1 矩陣
4.1.2 模運算的世界
4.1.3 計數
4.1.4 具有對稱性的計數
4.2 找出游戲的必勝策略
4.2.1 游戲與必勝策略
4.2.2 Nim
4.2.3 Grundy數
4.3 成為圖論大師之路
4.3.1 強連通分量分解
4.3.2 2-SAT
4.3.3 LCA
4.4 常用技巧精選(二)
4.4.1 棧的運用
4.4.2 雙端隊列的運用
4.4.3 倍增法
4.5 開動腦筋智慧搜索
4.5.1 剪枝
4.5.2 A與IDA
4.6 劃分、解決、合并:分治法
4.6.1 數列上的分治法
4.6.2 樹上的分治法
4.6.3 平面上的分治法
4.7 華麗地處理字符串
4.7.1 字符串上的動態規劃算法
4.7.2 字符串匹配
4.7.3 后綴數組
4.8 一起來挑戰GCJ的題目(3)
4.8.1 Mine Layer
4.8.2 Year of More Code Jam
4.8.3 Football Team
4.8.4 Endless Knight
4.8.5 The Year of Code Jam
本書中未涉及的拓展主題
書中例題列表
參考文獻
如今,形形色色的程序設計競賽層出不窮,聽說過Google CodeJam、TopCoder、ACM-ICPC的讀者恐怕不在少數。本書要介紹的正是這類以在規定時間內、又快又準地解決盡可能多的題目為目標的程序設計競賽。
程序設計競賽內涵豐富,即便是經驗老道的程序員,要想在比賽中取得好成績也絕非易事。要在程序設計競賽中取勝,不僅需要運用靈活的想象和豐富的知識得出正確的算法,還需要一氣呵成地實現并調試通過。
另一方面,程序設計競賽對新手而言亦非遙不可及。為了讓更多的參賽選手體會到比賽的樂趣,大多數比賽都會準備若干面向初學者的題目。另外,即便未能在比賽中取得好成績,通過比賽,也能夠使自己的能力得到有效的鍛煉。最重要的是,大家能夠享受到激烈的比賽帶來的樂趣。
本書的作者們參加過眾多程序設計競賽,在平時的練習和學習中,也獲得了各種各樣的知識與技巧,本書將這些知識技巧總結成冊,主要介紹算法及其在相關問題中的應用。本書依照由易及難的順序對問題進行講解,章節的編排也參考了主題的難易程度及其相互的聯系,內容較多的主題則按難易程度劃分為多個子主題分別介紹。各個主題由算法介紹和例題講解穿插而成。
只要是具有編程基礎知識的讀者,均適合閱讀本書。書中的源代碼均用C 實現,不過只用到了其基本功能,所以即便讀者不熟悉C 也不影響閱讀。
[關于再版]
令人驚喜的是,本書的第1版受到了廣大讀者的高度評價,在此表示感謝。特別是一些并不熱衷于程序設計競賽的讀者也購買了本書。這是因為通過本書不僅可以學到算法,更能學到其設計和運用的思想。這正是本書劃時代的亮點。
本書第2版追加了計算幾何、搜索減枝、分治法和字符串相關算法4個主題。此外還追加了方便讀者加深理解的練習題,并為學有余力的讀者列出了書中未涉及的拓展主題,進一步豐富了本書內容。
……
發貨速度特別快,12小時左右就收貨了,里面內容是C++寫的,目前很滿意!
確定是本好書 最近在看算法導論當練習輔導書看也是很不錯
很好的一本書,確實是世界頂級程序設計高手的經驗之作。
內容贊,排版一般就代碼縮進而言,是我不喜歡的兩格縮進
絕對的好書。非常適合ACM入門選手來擴充知識面。不過較高級一些的選手就可以忽略掉這本書啦,。
孩子看了,說內容很好。圖靈程序設計這個系列都是優質好書,值得購買。
算法導論?太深奧了。所以還是讓這本書給初入行的學學算法吧,對大公司應聘也有好處的。
題目很好,講解比較簡潔,跟著這個書刷題比較好
書中的很多算法還是很具有挑戰性的,不論是作為競賽還是面試都會很有幫主的
非常好,即使是日本人寫的,也頂起,只是難度稍高
剛收到 感覺還不錯 !粗略翻了一下里面算法都是用C/c++實現不錯 不錯
打開快遞書上有好多類似膠的東西,不過能刮去。。還是不爽
書里面的解題思路很贊,代碼實現簡潔優美,比較適合新手學習算法(電子版的全文看過,忍不住買了一本,真心好書)。
這書對于新手來說還是不錯的,可以在看代碼的時候慢慢地學習到高手的思維模式,這是好事,至于對于大牛來說這書如何,我就不敢說太多了,畢竟我太弱了、
內容比較詳實。但比較注重算法,對數據結構的介紹相對較少。
編程總體上是一門實踐,多看還有多做,多做還要多總結。所以本書可以看做一本習題冊,身旁需要常備一天筆記本(最好是Air)。
總體感覺可以,比算法競賽那個實例要多,算法競賽那個干講理論沒什么實際意義,不如對應例子講解學習編程技巧。
用來參加程序設計大賽的,得多研究,很好的參考書,希望此類書越來越多。
總體很滿意,不過封面磨損有些嚴重,應該是遞送時造成的,內容詳實,好評
很喜歡的一本書,學習算法很好,大學就想買了,現在工作了還是買了,對于提高程序思維很有幫助,還有當當發貨速度很贊
算法經典必備書,書的質感摸起來很好也有塑封,當當打折買的,活動很給力,好評!
本書是一本算法的基礎書,配套了在線oj,適合用來學習,很有參考性
不錯,就是不是很建議初學者入手,比較有難度,小白還是去看我的第一本編程書或者教材先學會基本算法語言比較好,本書內容挺有啟發的,不錯
挑戰程序設計競賽 (第2版)【程序設計高手的經驗總結,學習一下!
不得不說,第一次在網上買書就這么好的效果,絕對給當當五星好評啊,昨天上午買的書,第二天上午11點就到了,快遞快的沒得說,第一次從網上買東西發貨這么快,當當6啊,在說一下這本書的質量,絕對沒得說,不管是紙的厚度,還是印刷質量絕對好啊,書也沒有什么味道,第一次買書,太滿意了,以后就在當當買書了
這本書最大的好處是,將不同的算法和例題按專題編排成小節,再將不同的小節由易到難分成四章,這樣即便是我孩子這種初出茅廬的新手也不會有太大的障礙。所以,很贊。
書中按算法專題編排章節,每一章都以例題為中心進行算法的講解、具體問題的分析,例題比較豐富,而且循序漸進由簡到難。書中基本沒有《算法導論》里的各種復雜度分析和數學證明,主要是著眼于例題的講解,我覺得比較適合有一定編程基礎的同學。