圖書信息
出版社: 清華大學出版社; 第1版 (2010年7月1日)
叢書名: 21世紀高等學校計算機教育實用規劃教材
平裝: 396頁
正文語種: 簡體中文
開本: 16
ISBN: 7302223734, 9787302223733
條形碼: 9787302223733
尺寸: 25.6 x 18.4 x 1.6 cm
重量: 640 g
內容簡介
《ACM/ICPC程式設計與分析(C++實現)》介紹ACM國際大學生程式設計競賽概況及程式設計基礎,系統介紹數論、組合數學、動態規劃、計算幾何、搜尋、圖論和網路流等專題的典型算法,挑選歷年競賽中許多有代表性的競賽題作為例題進行分析,便於學生編程時模仿學習。每章的例題和習題都配有輸入輸出樣例,方便學生在編程時測試與調試程式。《ACM/ICPC程式設計與分析(C++實現)》以C++為程式設計語言,以提高編程能力為目標,按照由淺人深、循序漸進的原則編寫。
《ACM/ICPC程式設計與分析(C++實現)》不僅適合於計算機專業的學生,也適合於非計算機專業的學生。《ACM/ICPC程式設計與分析(C++實現)》是問題求解性自主式學習的程式設計教材,也是學習數據結構與算法設計與分析的參考教材,還可以作為ACM國際大學生程式設計競賽的參考書。
目錄
第1章 ACM國際大學生程式設計競賽簡介
1.1 ACM國際大學生程式設計競賽概況
1.2 ACM國際大學生程式設計競賽組織形式簡介
1.2.1 組隊方式和比賽形式
1.2.2 競賽環境
1.2.3 判題結果
1.2.4 遞交與評判
1.3 程式設計對學生的要求
1.4 程式設計語言選擇
1.5 ACM程式設計競賽題形式
習題1
第2章 程式設計基礎
2.1 程式設計概述
2.2 算法基礎
2.2.1 算法概述
2.2.2 算法複雜性
2.2.3 演繹方法的使用
2.2.4 演繹法算法設計舉例
2.3 程式設計的輸入輸出形式
2.4 C++檔案操作
2.5 輸入輸出格式控制
2.5.1 流基類ios層次圖
2.5.2 非格式化抽取
2.5.3 操縱運算元
2.6 排序
2.6.1 冒泡排序
2.6.2 快速排序
2.7 簡單套用
2.7.1 轉換十六進制數
2.7.2 顛倒原文
2.7.3 指定個數的整數求和
2.7.4 不指定個數的整數求和
習題2
第3章 程式設計簡單問題
3.1 ACM/ICPC程式設計競賽的題型
3.2 簡單例子
3.2.1 空格字元與非空格字元統計
3.2.2 荷蘭國旗問題
3.2.3 城市間的球面距離
3.2.4 合併電話簿
3.2.5 圖書排序問題
習題3
第4章 高精度計算與代數計算
4.1 高精度計算
4.1.1 基本知識
4.1.2 高精度數據的處理方法
4.1.3 高精度四則運算的基本處理方法
4.2 高精度四則運算套用
4.2.1 A+B問題
4.2.2 公牛和母牛
4.2.3 A一月問題
4.2.4 計算餘數問題
4.3 代數計算
4.4 實例研究
4.4.1 指數函式值
4.4.2 是金還是銀
4.4.3 p倍和子集問題
4.4.4 楊輝三角形
4.4.5 黑白棋遊戲
習題4
第5章 數論中的程式設計
5.1 從跳獸問題談起
5.2 最大公因數與最低公倍數
5.2.1 公因數和最大公因數的概念
5.2.2 最低公倍數
5.2.3 歐幾里得算法
5.3 利用歐幾里得算法求整係數一次不定方程
5.4 求解模線性方程
5.4.1 模和同餘
5.4.2 模線性方程
5.5 求modm的逆元素算法
5.6 模線性方程組與中國剩餘定理
5.7 模冪運算與素數測試
5.7.1 模冪運算
5.7.2 素數測試
5.8 二次剩餘與Pell方程
5.8.1 二次剩餘
5.8.2 Pell方程
5.9 實例研究
5.9.1 MagicHorse
5.9.2 階乘問題
5.9.3 郵票問題
5.9.4 Josephus問題
5.9.5 負數進制轉換
5.9.6 數塔問題
5.9.7 幸運數
5.9.8 哥德巴赫猜想
習題5
第6章 組合數學中的程式設計
6.1 組合數學中有關概念與公式
6.1.1 排列與組合及有關的生成算法
6.1.2 母函式
6.1.3 容斥原理與錯排
6.1.4 P6lya定理
6.2 實例研究
6.2.1 蛋糕
6.2.2 楊輝三角形中的奇偶問題
6.2.3 足球賽票
6.2.4 棋盤格數
6.2.5 保險柜上鎖
6.2.6 彈球遊戲
6.2.7 最少砝碼
6.2.8 環
6.2.9 珍珠項鍊
6.2.1 0統計棋局數
習題6
第7章 動態規劃
7.1 動態規劃原理
7.2 實例研究
7.2.1 遊船費問題
7.2.2 航線設定
7.2.3 複製書稿
7.2.4 括弧序列
7.2.5 整數匹配問題
7.2.6 生日蛋糕
7.2.7 乘積最大
7.2.8 多邊形計算
習題7
第8章 計算幾何學
8.1 幾何基本知識
8.1.1 矢量的概念
8.1.2 矢量加減法
8.1.3 矢量叉積
8.1.4 折線段的拐向判斷
8.1.5 判斷點是否線上段上
8.1.6 跨立試驗與判斷兩線段是否相交
8.1.7 整數點與Pick定理
8.2 基本算法
8.3 凸包
8.3.1 凸包的概念與實例
8.3.2 Graham掃描法
8.3.3 Jarvis步進法
8.3.4 Graham掃描法與Jarvis步進法的程式實現
8.4 實例研究
8.4.1 有缺陷的衛星
8.4.2 籬笆
8.4.3 處於危險之中的飛行員
8.4.4 穿街走巷
8.4.5 三角形
習題8
……
第9章 搜尋算法
第10章 一般圖論中的程式設計
第11章 網路流與二分圖
第12章 雜例