前言
第1章 求解Ad Hoc類問題的編程實驗1
1.1 機理分析法的實驗範例1
1.2 統計分析法的實驗範例5
1.3 相關題庫10
第2章 模擬法的編程實驗35
2.1 直敘式模擬的實驗範例36
2.2 篩選法模擬的實驗範例44
2.3 構造法模擬的實驗範例51
2.4 相關題庫55
第3章 數論的編程實驗69
3.1 素數運算的實驗範例69
3.1.1 使用篩法生成素數的實驗範例69
3.1.2 測試大素數的實驗範例76
3.2 求解不定方程和同餘方程的實驗範例81
3.2.1 計算最大公約數和不定方程81
3.2.2 計算同餘方程和同餘方程組85
3.3 積性函數的實驗範例91
3.3.1 使用歐拉函數φ(n)計算與n互質的正整數個數 92
3.3.2 使用莫比烏斯函數μ(n)計算非平方數n的質因子個數97
3.4 相關題庫102
第4章 組閤分析的編程實驗118
4.1 生成排列組閤的實驗範例118
4.1.1 按字典序思想生成下一排列組閤118
4.1.2 按字典序思想生成所有的排列組閤121
4.2 排列組閤計數的實驗範例122
4.2.1 一般的排列組閤計數公式123
4.2.2 兩種特殊的排列組閤計數公式126
4.3 容斥原理與抽屜原理的實驗範例132
4.3.1 利用抽屜原理求解存在性問題132
4.3.2 利用容斥原理對並集計數134
4.4 波利亞定理的實驗範例140
4.4.1 波利亞定理的概念基礎141
4.4.2 利用波利亞定理計算集閤在置換群作用下産生的等價類個數148
4.5 相關題庫157
第5章 貪心法的編程實驗165
5.1 體驗貪心法內涵的實驗範例165
5.2 利用數據有序化進行貪心選擇的實驗範例172
5.3 在綜閤性的P類問題中使用貪心法的實驗範例181
5.4 相關題庫187
第6章 動態規劃(DP)方法的編程實驗197
6.1 綫性DP的實驗範例198
6.1.1 初步體驗綫性DP問題198
6.1.2 子集和問題202
6.1.3 最長公共子序列問題203
6.1.4 最長遞增子序列問題206
6.2 樹形DP的實驗範例213
6.3 狀態壓縮DP的實驗範例218
6.4 單調優化1D/1D DP的實驗範例224
6.4.1 經典模型1:利用決策代價函數w的單調性優化224
6.4.2 經典模型2:利用決策區間下界的單調性優化228
6.4.3 經典模型3:利用最優決策點的凸性優化233
6.5 相關題庫236
第7章 高級數據結構的編程實驗273
7.1 後綴數組的實驗範例273
7.1.1 使用倍增算法計算名次數組和後綴數組273
7.1.2 計算最長公共前綴276
7.1.3 後綴數組的應用278
7.2 綫段樹的實驗範例288
7.2.1 綫段樹的基本概念和基本操作288
7.2.2 綫段樹單點更新的維護290
7.2.3 綫段樹子區間更新的維護293
7.3 處理特殊圖的實驗範例306
7.3.1 計算歐拉圖306
7.3.2 計算哈密爾頓圖314
7.3.3 計算最大獨立集324
7.3.4 計算割點、橋和雙連通分支327
7.4 相關題庫336
第8章 計算幾何的編程實驗354
8.1 點綫麵運算的實驗範例354
8.1.1 計算點積和叉積354
8.1.2 計算綫段交361
8.1.3 利用歐拉公式計算多麵體371
8.2 利用掃描綫算法計算矩形的麵積並375
8.2.1 沿垂直方嚮計算矩形的麵積並375
8.2.2 沿水平方嚮計算矩形的麵積並380
8.3 計算半平麵交的實驗範例383
8.3.1 計算半平麵交的聯機算法384
8.3.2 利用極角計算半平麵交的算法390
8.4 計算凸包和鏇轉卡殼的實驗範例398
8.4.1 計算凸包399
8.4.2 鏇轉卡殼實驗403
8.5 相關題庫408
· · · · · · (
收起)