幫助中心 | 我的帳號 | 關於我們

演算法思維(競賽真題精選精講第2版)/圖靈程序設計叢書

  • 作者:(加)丹尼爾·津加羅|責編:王軍花|譯者:侯劭捷
  • 出版社:人民郵電
  • ISBN:9787115683649
  • 出版日期:2026/01/01
  • 裝幀:平裝
  • 頁數:386
人民幣:RMB 129.8 元      售價:
放入購物車
加入收藏夾

內容大鋼
    本書精選IOI、NOIP、USACO、CCC、CCO、ICPC、DWITE等競賽中28個富有趣味與挑戰性的演算法競賽題,採用「問題描述–輸入–輸出–解決方案」的結構,引導讀者在實戰中培養演算法思維,牢固掌握數據結構與演算法的核心知識。全書共分10章,涵蓋哈希表、樹與遞歸、記憶化與動態規劃、圖與廣度優先搜索、加權圖中的最短路徑、二分搜索、堆與線段樹、並查集以及隨機化演算法等主題。所有示例均用C語言實現,但無論你使用C++、Java還是Python,都能輕鬆理解並遷移所學思想與方法。

作者介紹
(加)丹尼爾·津加羅|責編:王軍花|譯者:侯劭捷
    丹尼爾·津加羅(Daniel Zingaro)博士是多倫多大學密西沙加分校電腦科學教學流中的獲獎副教授,他在主動學習方面的專長得到了國際認可。他也是《演算法思維》(No Starch Press)的作者。

目錄
第1章  哈希表
  1.1  問題1:獨特的雪花
    1.1.1  題干
    1.1.2  簡化問題
    1.1.3  解決核心問題
    1.1.4  解法1:成對比較
    1.1.5  解法2:減少工作量
  1.2  哈希表概覽
    1.2.1  設計哈希表
    1.2.2  為什麼使用哈希表
  1.3  問題2:登錄風波
    1.3.1  題干
    1.3.2  解法1:遍歷所有密碼
    1.3.3  解法2:使用哈希表
  1.4  問題3:拼寫檢查
    1.4.1  題干
    1.4.2  考慮哈希表
    1.4.3  臨時解決方案
  1.5  小結
  1.6  說明
第2章  樹與遞歸
  2.1  問題1:萬聖節掃蕩
    2.1.1  題干
    2.1.2  二叉樹
    2.1.3  求解用例
    2.1.4  二叉樹的表示
    2.1.5  收集所有糖果
    2.1.6  一個完全不同的解法
    2.1.7  最小遍歷街道數
    2.1.8  讀取輸入
  2.2  為什麼使用遞歸
  2.3  問題2:後代距離
    2.3.1  題干
    2.3.2  讀取輸入
    2.3.3  一個節點的後代數量
    2.3.4  所有節點的後代數量
    2.3.5  節點排序
    2.3.6  輸出信息
    2.3.7  main函數
  2.4  小結
  2.5  說明
第3章  記憶化與動態規劃
  3.1  問題1:漢堡狂
    3.1.1  題干
    3.1.2  制訂計劃
    3.1.3  確定最優解的特徵
    3.1.4  解法1:遞歸
    3.1.5  解法2:記憶化
    3.1.6  解法3:動態規劃
  3.2  記憶化與動態規劃的步驟

    3.2.1  第一步:最優解的結構
    3.2.2  第二步:遞歸解
    3.2.3  第三步:記憶化
    3.2.4  第四步:動態規劃
  3.3  問題2:精打細算
    3.3.1  題干
    3.3.2  確定最優解的特徵
    3.3.3  解法1:遞歸
    3.3.4  解法2:記憶化
  3.4  問題3:冰球勁敵
    3.4.1  題干
    3.4.2  關於勁敵
    3.4.3  確定最優解的特徵
    3.4.4  解法1:遞歸
    3.4.5  解法2:記憶化
    3.4.6  解法3:動態規劃
    3.4.7  空間優化
  3.5  小結
  3.6  說明
第4章  高級記憶化與動態規劃
  4.1  問題1:跳一跳
    4.1.1  題干
    4.1.2  示例解析
    4.1.3  解法1:反向構造
    4.1.4  解法2:正向構造
  4.2  問題2:構建方式
    4.2.1  題干
    4.2.2  示例解析
    4.2.3  解法1:使用「恰好」子問題
    4.2.4  解法2:引入更多子問題
  4.3  小結
  4.4  說明
第5章  圖與廣度優先搜索
  5.1  問題1:騎士追擊
    5.1.1  題干
    5.1.2  最優走法
    5.1.3  騎士的最佳結果
    5.1.4  騎士往返
    5.1.5  時間優化
  5.2  圖與BFS
    5.2.1  圖是什麼
    5.2.2  圖與樹
    5.2.3  圖的BFS
    5.2.4  圖與動態規劃
  5.3  問題2:攀繩
    5.3.1  題干
    5.3.2  解法1:尋找動作
    5.3.3  解法2:重新建模
  5.4  問題3:圖書翻譯
    5.4.1  題干

    5.4.2  讀取語言名稱
    5.4.3  構造圖
    5.4.4  BFS
    5.4.5  總成本
  5.5  小結
  5.6  說明
第6章  加權圖中的最短路徑
  6.1  問題1:老鼠迷宮
    6.1.1  題干
    6.1.2  從BFS出發
    6.1.3  加權圖中的最短路徑
    6.1.4  構造圖
    6.1.5  實現Dijkstra演算法
    6.1.6  兩項優化
  6.2  Dijkstra演算法
    6.2.1  Dijkstra演算法的運行時間
    6.2.2  負權邊
  6.3  問題2:探親計劃
    6.3.1  題干
    6.3.2  鄰接矩陣
    6.3.3  構造圖
    6.3.4  特殊路徑
    6.3.5  任務1:最短路徑
    6.3.6  任務2:最短路徑的數量
  6.4  小結
  6.5  說明
第7章  二分搜索
  7.1  問題1:喂螞蟻
    7.1.1  題干
    7.1.2  樹問題的變種
    7.1.3  讀取輸入
    7.1.4  可行性檢驗
    7.1.5  搜索解
  7.2  二分搜索概覽
    7.2.1  二分搜索的運行時間
    7.2.2  判斷可行性
    7.2.3  搜索有序數組
  7.3  問題2:河邊跳
    7.3.1  題干
    7.3.2  貪心思想
    7.3.3  可行性檢驗
    7.3.4  搜索解
    7.3.5  讀取輸入
  7.4  問題3:生活質量
    7.4.1  題干
    7.4.2  給每個矩形排序
    7.4.3  使用二分搜索
    7.4.4  可行性檢驗
    7.4.5  更高效的可行性檢驗
  7.5  問題4:洞穴之門

    7.5.1  題干
    7.5.2  求解子問題
    7.5.3  使用線性搜索
    7.5.4  使用二分搜索
  7.6  小結
  7.7  說明
第8章  堆與線段樹
  8.1  問題1:促銷活動
    8.1.1  題干
    8.1.2  解法1:數組中的最大值與最小值
    8.1.3  最大堆
    8.1.4  最小堆
    8.1.5  解法2:堆
  8.2  堆
    8.2.1  另外兩個應用場景
    8.2.2  選擇數據結構
  8.3  問題2:構造樹堆
    8.3.1  題干
    8.3.2  遞歸輸出樹堆
    8.3.3  按標籤排序
    8.3.4  解法1:遞歸
    8.3.5  區間最大值查詢
    8.3.6  用線段樹處理區間查詢
    8.3.7  解法2:線段樹
  8.4  線段樹
  8.5  問題3:兩數之和
    8.5.1  題干
    8.5.2  填充線段樹
    8.5.3  查詢線段樹
    8.5.4  更新線段樹
    8.5.5  main函數
  8.6  小結
  8.7  說明
第9章  並查集
  9.1  問題1:社交網路
    9.1.1  題干
    9.1.2  建模為圖
    9.1.3  解法1:BFS
    9.1.4  並查集
    9.1.5  解法2:並查集
    9.1.6  優化1:按大小求並
    9.1.7  優化2:路徑壓縮
  9.2  並查集概覽
    9.2.1  關係:三個條件
    9.2.2  選擇並查集
    9.2.3  優化
  9.3  問題2:盟友和敵人
    9.3.1  題干
    9.3.2  擴充並查集
    9.3.3  main函數

    9.3.4  查找與合併
    9.3.5  SetFriends與SetEnemies
    9.3.6  AreFriends與AreEnemies
  9.4  問題3:收拾抽屜
    9.4.1  題干
    9.4.2  等價的抽屜
    9.4.3  main函數
    9.4.4  查找與合併
  9.5  小結
  9.6  說明
第10章  隨機化
  10.1  問題1:羊羹
    10.1.1  題干
    10.1.2  隨機選一塊
    10.1.3  生成隨機數
    10.1.4  確定塊數
    10.1.5  猜口味
    10.1.6  需要試幾次
    10.1.7  填充口味數組
    10.1.8  main函數
  10.2  隨機化概覽
    10.2.1  蒙特卡羅演算法
    10.2.2  拉斯維加斯演算法
    10.2.3  確定性演算法與隨機化演算法
  10.3  問題2:瓶蓋和瓶子
    10.3.1  題干
    10.3.2  求解子問題
    10.3.3  解法1:遞歸
    10.3.4  解法2:添加隨機化
  10.4  快速排序
    10.4.1  實現快速排序
    10.4.2  最壞情況與預期運行時間
  10.5  小結
  10.6  說明
附錄A  演算法運行時間
附錄B  未盡之言
附錄C  問題來源
後記

  • 商品搜索:
  • | 高級搜索
首頁新手上路客服中心關於我們聯絡我們Top↑
Copyrightc 1999~2008 美商天龍國際圖書股份有限公司 臺灣分公司. All rights reserved.
營業地址:臺北市中正區重慶南路一段103號1F 105號1F-2F
讀者服務部電話:02-2381-2033 02-2381-1863 時間:週一-週五 10:00-17:00
 服務信箱:bookuu@69book.com 客戶、意見信箱:cs@69book.com
ICP證:浙B2-20060032