挑戰程式設計競賽

挑戰程式設計競賽

《挑戰程式設計競賽(第2版)》是人民郵電出版社出版發行的圖書,作者是秋葉拓哉 ,岩田陽一,北川宜稔。本書對程式設計競賽中的基礎算法和經典問題進行了匯總,分為準備篇、初級篇、中級篇與高級篇4章。

基本介紹

  • 書名:挑戰程式設計競賽
  • 作者: 秋葉拓哉 / 岩田陽一 / 北川宜稔 
  • 原版名稱: プログラミングコンテストチャレンジブック 
  • 譯者: 巫澤俊 / 莊俊元 / 李津羽 
  • ISBN: 9787115320100
  • 頁數:414
  • 定價:CNY 79.00
  • 出版社:人民郵電出版社
  • 裝幀: 平裝
內容簡介,作者簡介,目錄,

內容簡介

世界頂級程式設計高手的經驗總結
【ACM-ICPC全球總冠軍】巫澤俊主譯
作者結合自己豐富的參賽經驗,對嚴格篩選的110 多道各類試題進行了由淺入深、由易及難的細緻講解,並介紹了許多實用技巧。每章後附有習題,供讀者練習,鞏固所學。
本書適合程式設計人員、程式設計競賽愛好者以及高校計算機專業師生閱讀。

作者簡介

★秋葉拓哉
Google Code Jam 2010 第9名
ACM-ICPC World Finals 2012 第11名
TopCoder Open 2012 Algorithm 第4名
★岩田陽一
Google Code Jam 2009 第3名
TopCoder Open 2010 Marathon 冠軍
IPSC 2010 個人組 冠軍
★北川宜稔
ACM-ICPC World Finals 2010第16名
暱稱kita_masa
★巫澤俊
ACM-ICPC World Finals 2009 第6名
ACM-ICPC World Finals 2011 冠軍
Google Code Jam 2012 第7名
★莊俊元
ACM-ICPC Asia Phuket Regional 2011 冠軍
2012年躋身ACM-ICPC World Finals以及百度Astar總決賽
★李津羽
浙江大學2011級計算機系博士生
在浙大CAD&CG實驗室從事科研工作

目錄


第1章 蓄勢待發——準備篇
1.1  何謂程式設計競賽
1.2  最負盛名的程式設計競賽
1.2.1  世界規模的大賽——Google Code Jam(GCJ)
1.2.2  向高排名看齊!——TopCoder
1.2.3  歷史最悠久的競賽—— ACM-ICPC
1.2.4  面向中學生的信息學奧林匹克競賽——JOI-IOI
1.2.5  通過網路自動評測——Online Judge(OJ)
1.3  本書的使用方法
1.3.1  本書所涉及的內容
1.3.2  所用的程式語言
1.3.3  題目描述的處理
1.3.4  程式結構
1.3.5  練習題
1.3.6  讀透本書後更上一層樓的練習方法
1.4  如何提交解答
1.4.1  POJ的提交方法
1.4.2  GCJ的提交方法
1.5  以高效的算法為目標
1.5.1  什麼是複雜度
1.5.2  關於運行時間
1.6  輕鬆熱身
1.6.1  先從簡單題開始
1.6.2  POJ的題目Ants
1.6.3  難度增加的抽籤問題
第2章 初出茅廬——初級篇
2.1  最基礎的“窮竭搜尋”
2.1.1  遞歸函式
2.1.2  棧
2.1.3  佇列
2.1.4  深度優先搜尋
2.1.5  寬度優先搜尋
2.1.6  特殊狀態的枚舉
2.1.7  剪枝
2.2  一往直前!貪心法
2.2.1  硬幣問題
2.2.2  區間問題
2.2.3  字典序最小問題
2.2.4  其他例題
2.3  記錄結果再利用的“動態規劃”
2.3.1  記憶化搜尋與動態規劃
2.3.2  進一步探討遞推關係
2.3.3  有關計數問題的DP
2.4  加工並存儲數據的數據結構
2.4.1  樹和二叉樹
2.4.2  優先佇列和堆
2.4.3  二叉搜尋樹
2.4.4  並查集
2.5  它們其實都是“圖”
2.5.1  圖是什麼
2.5.2  圖的表示
2.5.3  圖的搜尋
2.5.4  最短路問題
2.5.5  最小生成樹
2.5.6  套用問題
2.6  數學問題的解題竅門
2.6.1  輾轉相除法
2.6.2  有關素數的基礎算法
2.6.3  模運算
2.6.4  快速冪運算
2.7  一起來挑戰GCJ的題目(1)
2.7.1  Minimum Scalar Product
2.7.2  Crazy Rows
2.7.3  Bribe the Prisoners
2.7.4  Millionaire
第3章 出類拔萃——中級篇
3.1  不光是查找值!“二分搜尋”
3.1.1  從有序數組中查找某個值
3.1.2  假定一個解並判斷是否可行
3.1.3  最大化最小值
3.1.4  最大化平均值
3.2  常用技巧精選(一)
3.2.1  尺取法
3.2.2  反轉(開關問題)
3.2.3  彈性碰撞
3.2.4  折半枚舉(雙向搜尋)
3.2.5  坐標離散化
3.3  活用各種數據結構
3.3.1  線段樹
3.3.2  Binary Indexed Tree
3.3.3  分桶法和平方分割
3.4  熟練掌握動態規劃
3.4.1  狀態壓縮DP
3.4.2  矩陣的冪
3.4.3  利用數據結構高效求解
3.5  藉助水流解決問題的網路流
3.5.1  最大流
3.5.2  最小割
3.5.3  二分圖匹配
3.5.4  一般圖匹配
3.5.5  匹配、邊覆蓋、獨立集和頂點覆蓋
3.5.6  最小費用流
3.5.7  套用問題
3.6  與平面和空間打交道的計算幾何
3.6.1  計算幾何基礎
3.6.2  極限情況
3.6.3  平面掃描
3.6.4  凸包
3.6.5  數值積分
3.7  一起來挑戰GCJ的題目(2)
3.7.1  Numbers
3.7.2  No Cheating
3.7.3  Stock Charts
3.7.4  Watering Plants
3.7.5  Number Sets
3.7.6  Wi-fi Towers
第4章 登峰造極——高級篇
4.1  更加複雜的數學問題
4.1.1  矩陣
4.1.2  模運算的世界
4.1.3  計數
4.1.4  具有對稱性的計數
4.2  找出遊戲的必勝策略
4.2.1  遊戲與必勝策略
4.2.2  Nim
4.2.3  Grundy數
4.3  成為圖論大師之路
4.3.1  強連通分量分解
4.3.2  2-SAT
4.3.3  LCA
4.4  常用技巧精選(二)
4.4.1  棧的運用
4.4.2  雙端佇列的運用
4.4.3  倍增法
4.5  開動腦筋智慧搜尋
4.5.1  剪枝
4.5.2  A*與IDA*
4.6  劃分、解決、合併:分治法
4.6.1  數列上的分治法
4.6.2  樹上的分治法
4.6.3  平面上的分治法
4.7  華麗地處理字元串
4.7.1  字元串上的動態規划算法
4.7.2  字元串匹配
4.7.3  後綴數組
4.8  一起來挑戰GCJ的題目(3)
4.8.1  Mine Layer
4.8.2  Year of More Code Jam
4.8.3  Football Team
4.8.4  Endless Knight
4.8.5  The Year of Code Jam

相關詞條

熱門詞條

聯絡我們