出版時間:2012-10 出版社:清華大學出版社 作者:劉汝佳,陳鋒 頁數:511 字數:762000
Tag標簽:無
內容概要
本書是《算法競賽入門經典》的重要補充,旨在補充原書中沒有涉及或者講解得不夠詳細的內容,從而構建一個較完整的知識體系,并且用大量有針對性的題目,讓抽象復雜的算法和數學具體化、實用化。
本書共6章,分別為算法設計基礎、數學基礎、實用數據結構、幾何問題、圖論算法與模型和更多算法專題,全書通過近200道例題深入淺出地介紹了上述領域的各個知識點、經典思維方式以及程序實現的常見方法和技巧,并在章末和附錄中給出了豐富的分類習題,供讀者查漏補缺和強化學習效果。
本書題目多選自近年來ACM/ICPC區(qū)域賽和總決賽真題,內容全面,信息量大,覆蓋了常見算法競賽中的大多數細分知識點。書中還給出了所有重要的經典算法的完整程序,以及重要例題的核心代碼,既適合選手自學,也方便教練組織學習和訓練。
作者簡介
劉汝佳,1982年12月生,高中畢業(yè)于重慶市外國語學校。
2000年3月獲得NOI2000全國青少年信息學奧林匹克競賽一等獎第四名,進入國家集訓隊,并因此保送到清華大學計算機科學與技術系。大一時獲2001年ACM/ICPC國際大學生程序設計競賽亞洲-上海賽區(qū)冠軍和2002年世界總決賽銀牌(世界第四),2005年獲學士學位,2008年獲碩士學位。
學生時代曾為中國計算機學會NOI科學委員會學生委員,擔任IOI2002-2008中國國家隊教練,并為NOI系列比賽命題十余道?,F為NOI競賽委員會委員,并在NOI
25周年時獲得中國計算機學會頒發(fā)的“特別貢獻獎”。
2004年至今共為ACM/ICPC亞洲賽區(qū)命題二十余道,擔任6次裁判和2次命題總監(jiān),并應邀參加IOI和ACM/ICPC相關國際研討會,發(fā)表論文兩篇。
2004年初作為第一作者出版專著《算法藝術與信息學競賽》,2009年出版譯著《編程挑戰(zhàn)》,2009年出版《算法競賽入門經典》。
多年來在全國二十余個城市進行中學生競賽培訓工作,為北京、上海、吉隆坡等地的著名高校授課與宣講,并多次與TopCoder、百度和網易有道等知名企業(yè)合作舉辦比賽,讓更多的IT人才獲得展示自我的平臺。
陳鋒,1982年9月生。畢業(yè)于華北水利水電學院機械設計專業(yè)。曾就職于微軟全球技術支持中心,負責.net虛擬機以及Visual
Studio開發(fā)技術支持。后進入金融IT行業(yè),專注于銀行網點平臺的產品研發(fā),曾分別負責基于.net和Eclipse的兩代網點平臺產品的開發(fā)以及架構設計?,F就職于北京宇信易誠科技,任前端產品技術經理及架構師。
書籍目錄
第1章 算法設計基礎
1.1 思維的體操
1.2 問題求解常見策略
1.3 高效算法設計舉例
1.4 動態(tài)規(guī)劃專題
1.5 小結與習題
第2章 數學基礎
2.1 基本計數方法
2.2 遞推關系
2.3 數論
2.3.1 基本概念
2.3.2 模方程
2.4 組合游戲
2.5 概率與數學期望
2.6 置換及其應用
2.7 矩陣和線性方程組
2.8 數值方法簡介
2.9 小結與習題
第3章 實用數據結構
3.1 基礎數據結構回顧
3.1.1 抽象數據類型(ADT)
3.1.2 優(yōu)先隊列
3.1.3 并查集
3.2 區(qū)間信息的維護與查詢
3.2.1 二叉索引樹(樹狀數組)
3.2.2 RMQ問題
3.2.3 線段樹(1):點修改
3.2.4 線段樹(2):區(qū)間修改
3.3 字符串(1)
3.3.1 Trie
3.3.2 KMP算法
3.3.3 Aho-Corasick自動機
3.4 字符串(2)
3.4.1 后綴數組
3.4.2 最長公共前綴(LCP)
3.4.3 基于哈希值的LCP算法
3.5 排序二叉樹
3.5.1 基本概念
3.5.2 用Treap實現名次樹
3.5.3 用伸展樹實現可分裂與合并的序列
3.6 小結與習題 244第4章 幾何問題
4.1 二維幾何基礎
4.1.1 基本運算
4.1.2 點和直線
4.1.3 多邊形
4.1.4 例題選講
4.1.5 二維幾何小結
4.2 與圓和球有關的計算問題
4.2.1 圓的相關計算
4.2.2 球面相關問題
4.3 二維幾何常用算法
4.3.1 點在多邊形內判定
4.3.2 凸包
4.3.3 半平面交
4.3.4 平面區(qū)域
4.4 三維幾何基礎
4.4.1 三維點積
4.4.2 三維叉積
4.4.3 三維凸包
4.4.4 例題選講
4.4.5 三維幾何小結
4.5 小結與習題
第5章 圖論算法與模型
5.1 基礎題目選講
5.2 深度優(yōu)先遍歷
5.2.1 無向圖的割頂和橋
5.2.2 無向圖的雙連通分量
5.2.3 有向圖的強連通分量
5.2.4 2-SAT問題
5.3 最短路問題
5.3.1 再談Dijkstra算法
5.3.2 再談Bellman-Ford算法
5.3.3 例題選講
5.4 生成樹相關問題
5.5 二分圖匹配
5.5.1 二分圖最大匹配
5.5.2 二分圖最佳完美匹配
5.5.3 穩(wěn)定婚姻問題
5.5.4 常見模型
5.6 網絡流問題
5.6.1 最短增廣路算法
5.6.2 最小費用最大流算法
5.6.3 建模與模型變換
5.6.4 例題選講
5.7 小結與習題
第6章 更多算法專題
6.1 輪廓線動態(tài)規(guī)劃
6.2 嵌套和分塊數據結構
6.3 暴力法專題
6.3.1 路徑尋找問題
6.3.2 對抗搜索
6.3.3 精確覆蓋問題和
章節(jié)摘錄
版權頁: 插圖: 【輸入格式】 輸入包含多組數據。每組數據的第一行為學生個數n(1≤n≤500000);以下每行包含兩個不同的非負整數A和B,表示該學生想從A學校換到B學校。輸入結束標志為n=0。 【輸出格式】 對于每組數據,輸出YES或者NU。 復合詞(Compound Words,UVa 10391) 給定一個詞典,要求找出其中所有的復合詞,即恰好由兩個單詞連接而成的單詞。 【輸入格式】 輸入只有一組數據,其中每行都是一個由小寫字母組成的單詞。輸入已按照字典序排序,且不超過120000個單詞。 【輸出格式】 輸出所有復合詞,按照字典序排列。 Gergovia的酒交易(Wire trading in Gergovia,UVa 11054) 直線上有n個等距的村莊,每個村莊要么買酒,要么賣酒。把k個單位的酒從一個村莊運到相鄰村莊需要k個單位的勞動力。問最少需要多少勞動力才能滿足所有村莊的需求。 【輸入格式】 輸入包含多組數據。每組數據的第一行為村莊個數n(2≤n≤100000);第二行從左到右給出各個村莊對酒的需求ai(—1000≤a≤1000),其中ai>0表示買酒,ai
圖書封面
圖書標簽Tags
無
評論、評分、閱讀與下載