內容簡介
適用於ACM, IOI等各類程式設計競賽訓練
精析典型賽題,提供詳細註解的參考程式,高效率訓練思維能力和編寫程式能力
本書以作者長期教學和競賽訓練中總結的資料結構和進階資料結構知識體系,以及行之有效的程式編寫能力訓練方法,以各類程式設計競賽的試題為素材編寫而成。透過啟發式、案例化的教學,系統、全面地培養讀者編寫程式解決問題的能力。本書不僅可以作為ACM-ICPC、IOI等程式設計競賽的訓練教學課程,亦可作為大專院校程式設計相關課程教材,以及對編寫程式感興趣的讀者的自學讀物。
‧從ACM-ICPC、IOI等各類程式設計競賽中精選300餘道典型賽題,並歸為Ad Hoc、模擬、數論、組合分析、貪心、動態規劃、高階資料結構、計算幾何八類,使讀者掌握各類經典問題的思考方法和解題策略。
‧將150餘道試題作為範例試題,每道試題不僅有詳盡的試題解析,同時提供詳細註解的參考程式;其他試題為題庫試題,每道試題提供清晰的提示,進一步訓練讀者解題策略。
‧第二版內容針對數論、組合分析兩章透過程式設計競賽試題及其解析,完整涵蓋其相關知識點,貪心、動態規劃兩章則加強了對經典問題的解析。
精析典型賽題,提供詳細註解的參考程式,高效率訓練思維能力和編寫程式能力
本書以作者長期教學和競賽訓練中總結的資料結構和進階資料結構知識體系,以及行之有效的程式編寫能力訓練方法,以各類程式設計競賽的試題為素材編寫而成。透過啟發式、案例化的教學,系統、全面地培養讀者編寫程式解決問題的能力。本書不僅可以作為ACM-ICPC、IOI等程式設計競賽的訓練教學課程,亦可作為大專院校程式設計相關課程教材,以及對編寫程式感興趣的讀者的自學讀物。
‧從ACM-ICPC、IOI等各類程式設計競賽中精選300餘道典型賽題,並歸為Ad Hoc、模擬、數論、組合分析、貪心、動態規劃、高階資料結構、計算幾何八類,使讀者掌握各類經典問題的思考方法和解題策略。
‧將150餘道試題作為範例試題,每道試題不僅有詳盡的試題解析,同時提供詳細註解的參考程式;其他試題為題庫試題,每道試題提供清晰的提示,進一步訓練讀者解題策略。
‧第二版內容針對數論、組合分析兩章透過程式設計競賽試題及其解析,完整涵蓋其相關知識點,貪心、動態規劃兩章則加強了對經典問題的解析。
作者簡介
作者介紹吳永輝
復旦大學副教授,美國石溪大學訪問學者,上海師範大學兼任教授,ICPC亞洲訓練委員會主任。曾率隊在ICPC世界總決賽上獲得獎牌,並應邀在海內外多所大專院校長期講學。
王建德
著名的資訊科學奧林匹克競賽金牌教練,他所輔導的學生在國際資訊科學競賽(IOI)中獲得優異成績,先後出版了多本關於程式設計和演算法的學術著作。譯者介紹
復旦大學副教授,美國石溪大學訪問學者,上海師範大學兼任教授,ICPC亞洲訓練委員會主任。曾率隊在ICPC世界總決賽上獲得獎牌,並應邀在海內外多所大專院校長期講學。
王建德
著名的資訊科學奧林匹克競賽金牌教練,他所輔導的學生在國際資訊科學競賽(IOI)中獲得優異成績,先後出版了多本關於程式設計和演算法的學術著作。譯者介紹
目錄
Chapter 01 求解 Ad Hoc 類型問題的程式編寫實作
1.1 機制分析法的實作範例
1.2 統計分析法的實作範例
1.3 相關題庫
Chapter 02 模擬法的程式編寫實作
2.1 直敘式模擬的實作範例
2.2 篩選法模擬的實作範例
2.3 建構法模擬的實作範例
2.4 相關題庫
Chapter 03 數論的程式編寫實作
3.1 質數運算的實作範例
3.2 求解不定方程和同餘的實作範例
3.3 特殊的同餘式實作範例
3.4 積性函數的實作範例
3.5 高斯質數的實作範例
3.6 相關題庫
Chapter 04 組合分析的程式編寫實作
4.1 產生排列的實作範例
4.2 排列組合計數的實作範例
4.3 鴿籠原理與排容原理的實作範例
4.4 Pólya 計數公式的實作範例
4.5 生成函數與遞迴關係的實作範例
4.6 快速傅立葉轉換的實作範例
4.7 相關題庫
Chapter 05 貪心法的程式編寫實作
5.1 體驗貪心法內涵的實作範例
5.2 利用資料有序化進行貪心選擇的實作範例
5.3 在綜合性的 P 類型問題中使用貪心法的實作範例
5.4 相關題庫
Chapter 06 動態規劃方法的程式編寫實作
6.1 線性 DP 的實作範例
6.2 0-1 背包問題
6.3 樹形 DP 的實作範例
6.4 狀態壓縮 DP 的實作範例
6.5 單調最佳化 1D/1D DP 的實作範例
6.6 相關題庫
Chapter 07 高階資料結構的程式編寫實作
7.1 後綴陣列的實作範例
7.2 區段樹的實作範例
7.3 處理特殊圖的實作範例
7.4 相關題庫
Chapter 08 計算幾何的程式編寫實作
8.1 點線面運算的實作範例
8.2 利用掃描線演算法計算矩形的聯集的面積的實作範例
8.3 計算半平面交集的實作範例
8.4 計算凸包和旋轉卡尺的實作範例
8.5 相關題庫
1.1 機制分析法的實作範例
1.2 統計分析法的實作範例
1.3 相關題庫
Chapter 02 模擬法的程式編寫實作
2.1 直敘式模擬的實作範例
2.2 篩選法模擬的實作範例
2.3 建構法模擬的實作範例
2.4 相關題庫
Chapter 03 數論的程式編寫實作
3.1 質數運算的實作範例
3.2 求解不定方程和同餘的實作範例
3.3 特殊的同餘式實作範例
3.4 積性函數的實作範例
3.5 高斯質數的實作範例
3.6 相關題庫
Chapter 04 組合分析的程式編寫實作
4.1 產生排列的實作範例
4.2 排列組合計數的實作範例
4.3 鴿籠原理與排容原理的實作範例
4.4 Pólya 計數公式的實作範例
4.5 生成函數與遞迴關係的實作範例
4.6 快速傅立葉轉換的實作範例
4.7 相關題庫
Chapter 05 貪心法的程式編寫實作
5.1 體驗貪心法內涵的實作範例
5.2 利用資料有序化進行貪心選擇的實作範例
5.3 在綜合性的 P 類型問題中使用貪心法的實作範例
5.4 相關題庫
Chapter 06 動態規劃方法的程式編寫實作
6.1 線性 DP 的實作範例
6.2 0-1 背包問題
6.3 樹形 DP 的實作範例
6.4 狀態壓縮 DP 的實作範例
6.5 單調最佳化 1D/1D DP 的實作範例
6.6 相關題庫
Chapter 07 高階資料結構的程式編寫實作
7.1 後綴陣列的實作範例
7.2 區段樹的實作範例
7.3 處理特殊圖的實作範例
7.4 相關題庫
Chapter 08 計算幾何的程式編寫實作
8.1 點線面運算的實作範例
8.2 利用掃描線演算法計算矩形的聯集的面積的實作範例
8.3 計算半平面交集的實作範例
8.4 計算凸包和旋轉卡尺的實作範例
8.5 相關題庫