編輯推薦
本係列含有《ACM國際大學生程序設計競賽:知識與入門》、《ACM國際大學生程序設計競賽:算法與實現》、《ACM國際大學生程序設計競賽:題目與解讀》等3冊。
《ACM國際大學生程序設計競賽:知識與入門》介紹瞭ACM-ICPC的知識及其分類、進階與角色、在綫評測係統;
《ACM國際大學生程序設計競賽:算法與實現》介紹瞭ACM-ICPC算法分類、實現及索引;
《ACM國際大學生程序設計競賽:題目與解讀》為各類算法配備經典例題及題庫,並提供解題思路;
內容簡介
ACM國際大學生程序設計競賽(ACM-ICPC)是國際上公認的水平zui高、規模zui大、影響zui深的計算機專業競賽,目前全球參與人數達20多萬。《ACM國際大學生程序設計競賽(ACM-ICPC)係列叢書:題目與解讀》作者將16年的教練經驗與積纍撰寫成本係列叢書,全麵、深入而係統地將ACM-ICPC展現給讀者、本係列叢書包括《ACM國際大學生程序設計競賽:知識與入門》、《ACM國際大學生程序設計競賽:算法與實現》、《ACM國際大學生程序設計競賽:題目與解讀》、《ACM國際大學生程序設計競賽:比賽與思考》等4冊,其中《ACM國際大學生程序設計競賽:知識與入門》介紹瞭ACM-ICPC的知識及其分類、進階與角色、在綫評測係統;《ACM國際大學生程序設計競賽:算法與實現》介紹瞭ACM-ICPC算法分類、實現及索引;《ACM國際大學生程序設計競賽:題目與解讀》為各類算法配備經典例題及題庫,並提供解題思路;《ACM國際大學生程序設計競賽:比賽與思考》介紹瞭上海交通大學ACM-ICPC的訓練及比賽,包括訓練劄記、賽場風雲、賽季縱橫、冠軍之路、崢嶸歲月。
《ACM國際大學生程序設計競賽(ACM-ICPC)係列叢書:題目與解讀》適用於參加ACM國際大學生程序設計競賽的本科生和研究生,對參加青少年信息學奧林匹剋競賽的中學生也很有指導價值。同時,作為程序設計、數據結構、算法等相關課程的拓展與提升,本叢書也是難得的教學輔助讀物。
作者簡介
俞勇,1961年生於上海,現為上海交通大學教授、博士生導師。1986年畢業於華東師範大學計算機科學係,獲碩士學位。畢業後在上海交通大學任教至今。1996至今擔任上海交通大學ACM國際大學生程序設計競賽領隊、主教練,3次率隊奪得ACM國際大學生程序設計競賽世界冠軍,上海交通大學成為該賽事亞洲第一個獲得冠軍、全球第三個“三冠王”的大學,2002、2012年相繼獲得“傑齣教練奬”、“功勛教練奬”。
俞勇教授曾主編教材或著作4本、譯著3本,先後主持教育部教育教學改革項目2項,獲得國傢ji和上海市教學成果奬7項,上海市優秀教材奬2項,並為國傢精品課程“數據結構”、上海市“程序設計類基礎課程教學團隊”主持人。從事Web搜索與挖掘研究,先後主持國傢自然科學基金、863計劃等十餘項,發錶重要國際會議和期刊學術論文百餘篇。
俞勇教授曾獲得國務院特殊津貼、“全國師德標兵”、“寶鋼優秀教師特等奬”、“上海市教學名師”、“上海市五一勞動奬章”、“上海市模範教師”、“上海交通大學校長奬”、“上海交通大學zui受學生歡迎教師”、“上海交通大學受研究生歡迎導師”等榮譽。曾被中央電視颱新聞聯播、上海教育颱、光明日報、文匯報等十多傢媒體報道。
內頁插圖
目錄
第一部分 例題精講
第1章 數學
1.1 概率
Coupons
Generator
1.2 代數
1.2.1 Polya
Arifin Dhaka (First Love Part2)
1.2.2 矩陣
Tower
XX Language
1.2.3 綫性方程組
Ars Longa
1.2.4 綫性規劃
Expensive Drink
1.3 組閤
1.3.1 基本排列組閤
The Unreal Tournament
1.3.2 容斥原理
Jackpot
The Almost Lucky Numbers
1.3.3 生成函數
Vasva's Dad
1.3.4 生成樹計數
Organising the Organisation
1.3.5 綜閤
Hero of Our Time
Permutation
1.4博弈
Battle for the Ring
Fool's Game
Points Game
1.5 數論
1.5.1 模綫性方程
Integer Sequences
1.5.2 歐幾裏得
Wizards
1.5.3 歐拉定理
Strange Limit
1.5.4 歐拉函數
GCD Determinant
1.5.5 平方剩餘
Square Root
1.5.6 原根
Fermat's Last Theorem
1.5.7 整除與剩餘
Brute-Force Algorithm
Integral Roots
VMan's Problem
1.5.8 中國剩餘定理
Voyager 1
1.6 分析
Bridge
第2章 數據結構
2.1 優先隊列
The Lazy Programmer
2.2 綫性錶
Book Pile
2.3 散列錶
Censored!
6.1.5 Rabin-Karp
Square Palindrome
6.2 最近公共祖先
The Merchant
Transportation Network
Design the city
6.3 2-SAT
Game with cards
Cipher
6.4 快速傅立葉變換
K-neighbor substrings
第二部分 題庫
4 Values Whose Sum is 0
8G Island
A Binary Apple Tree
A Dinner with
Schwarzenegger! ! !
A Foldy but a Goody
A Game with Colored Balls
A Line Painting
A Secret Book
A Simple Pendulum
Abelian Groups
Aerodynamic
Again Palindrome
Aaainst Mammoths
Air Conditioning
Machinery
All Your Bases Belong to Us
Alphabet
Alternating Sum of Digits
Always an Integer
Ampluplulic Carbon
Molecules
Anansi's Cobweb
Anaent decoration
Angry Teacher
Anniversary Party
Another Chocolate Maniac
Another Minimum
Spamung Tree
Antsll
Ants
Apple or Doughnut
Archipelago
Area 51
Arrays
Art ofWar
Asteroids
Astronomy
Autocompletion
Automaton
B-Station
Balance
Barisal Stadium
Battle
Battle of the Triangle
Battle
Be a Smart Raftsman
Be Wary of Roses
Beloved Sons
Best Cow Line, Gold
Bigger is Better
Binary Lexicographic
Sequence
Bingo
Bishops
Bit Compressor
Bitmap
Black & White
……
前言/序言
寫在最前麵的話
自從上海交通大學2002年第一次、2005年第二次獲得ACM國際大學生程序設計競賽(ACM International Collegiate Programming Contest,簡稱ACM-ICPC或ICPC)世界冠軍以來,總有記者邀請編者撰寫冠軍之路類的文章,也總有齣版社希望編者齣版ACM-ICPC競賽類的書籍,因為沒有想清楚怎麼寫,所以一直沒動筆。直到2010年上海交通大學第三次獲得ACM-ICPC世界冠軍後,編者決定齣版一套係列叢書,包括《ACM國際大學生程序設計競賽:知識與入門》、《ACM國際大學生程序設計競賽:算法與實現》、《ACM國際大學生程序設計競賽:題目與解讀》及《ACM國際大學生程序設計競賽:比賽與思考》4冊書籍,全麵、深入而係統地將ACM-ICPC展現給讀者,把上海交通大學十多年來對ACM-ICPC競賽的感悟分享給讀者。
編寫此係列叢書的另一個重要原因是ACM-ICPC競賽在中國大陸的蓬勃興起。自從1996年ACM-ICPC引入中國大陸,前六屆僅設立1個賽區,目前每年一般設立5個賽區,並已有30所高校承辦過亞洲區預賽;參賽學校從不滿30所,到如今已達150多所;人數從不到200人,到如今已近15萬;總決賽名額從起初的3個,到如今已超過15個。同時,中國大陸在ACM-ICPC競賽上所取得的成績也舉世矚目。清華大學9次獲得總決賽奬牌(3金5銀1銅),位居奬牌榜之首,是實力最強、錶現最穩定的高校;上海交通大學8次獲得總決賽奬牌(4金3銀1銅),3次奪得世界冠軍,算是目前國內成績最好的高校;中山大學4次獲得總決賽奬牌(2銀2銅),在生源不占優勢的情況下,這一成績令人敬佩;復旦大學3次獲得總決賽奬牌(1銀2銅),是公認的強校;浙江大學2次獲得總決賽奬牌(1金1銀),1次奪得世界冠軍,再次讓國人歡欣鼓舞;北京大學1次獲得總決賽奬牌(1銅),隊員的綜閤實力堪稱一流;最難能可貴的是,華南理工大學也獲得過總決賽的奬牌(1銅),它告訴我們,ACM-ICPC不僅僅是“強校”之間的“對話”,隻要堅持參與就會斬獲成果。另外,至今已有37所大陸高校參加過全球總決賽,且不論成績如何,他們在賽場上的奮鬥亦值得稱道。
本係列叢書的第一冊《ACM國際大學生程序設計競賽:知識與入門》分為三個部分。知識點部分基本涵蓋瞭競賽中所涉及的主要知識點,包括數學基礎、數據結構、圖論、計算幾何、論題選編、求解策略等六個大類內容。入門與進階部分介紹瞭包括如何快速入門、如何提高自身以及團隊水平等,主要根據上海交通大學ACM-ICPC隊多年參賽經驗總結而來。在綫資源部分對一些常用的在綫評測係統和網上比賽進行瞭介紹。
本係列叢書的第二冊《ACM國際大學生程序設計競賽:算法與實現》涵蓋瞭大部分ACM-ICPC競賽常用的經典算法,包括數學、圖論、數據結構、計算幾何、論題選編五個大類,對每個算法的代碼實現,都配有接口說明以及簡略的算法闡述,並提供算法的完整程序。並收集瞭一些實用的知識點及積分錶,方便讀者查找使用。
本係列叢書的第三冊《ACM國際大學生程序設計競賽:題目與解讀》分為兩個部分。例題精講部分針對第二冊《ACM國際大學生程序設計競賽:算法與實現》中的算法配備經典例題,並提供細緻的解題思路,讀者可以通過這一部分學習和掌握算法;海量題庫部分按照算法分類羅列齣大量習題,並提供相應的題解,讀者可以利用這一部分的題目進行訓練,更加熟練地運用各類算法。
本係列叢書的第四冊《ACM國際大學生程序設計競賽:比賽與思考》從120多名隊員、2400餘篇文檔中精心挑選、編纂而成的文集,包括訓練劄記、賽場風雲、賽季縱橫、冠軍之路、崢嶸歲月,集中展現瞭上海交通大學ACM-ICPC隊16年的奮鬥曆程,記載瞭這些隊員為瞭實現自己的夢想而不懈努力、勇於拼搏的故事。
這是一套全麵、係統地學習ACM-ICPC競賽的知識類書籍;
這是一套詳盡、深入地熟悉ACM-ICPC競賽的算法及題目的手冊類書籍;
這是一套程序設計、數據結構、算法等相關課程的拓展與提升類書籍;
這是一部上海交通大學ACM-ICPC隊的成長史;
這是一部激勵更多學子勇敢追尋並實現自己最初的夢想的勵誌書。
曆時2年零5個月,終於完成瞭本係列叢書,編者與隊員有一種如釋重負的感覺,因為我們把齣版這套叢書看得很重,這是我們16年的經驗與積纍,希望對廣大讀者有用。
值此ACM-ICPC進入中國大陸16周年、上海交通大學獲得ACM-ICPC世界冠軍10周年之際,謹以此係列叢書——
紀念我們曾經走過的路、度過的歲月;
獻給所有支持、幫助過我們的人……
俞 勇
2012年10月於上海
前 言
在參加ACM國際大學生程序設計競賽(ACM International Collegiate Programming Contest,簡稱ACM-ICPC或ICPC)或其他程序設計比賽時,“割題”是必不可少的步驟,它可以幫助選手更深入地理解和掌握算法,鍛煉和提升代碼能力。相信很多選手都有過這樣的經曆:麵對海量的競賽題目感到無從下手,或是在一道題上百思不得其解而感到力不從心。因此齣版這本配有解答的ACM-ICPC題集,希望可以為讀者指引一條割題之路。
本書的選題基本涵蓋瞭《ACM國際大學生程序設計競賽:知識與入門》和《ACM國際大學生程序設計競賽:算法與代碼》兩書中所涉及的算法,包括數學、圖論、計算幾何、數據結構、求解策略、問題選編6個大類。題目來源也可謂包羅萬象,包括曆年ACM-ICPC的分區賽、總決賽,各個在綫評測係統:POJ、ZOJ、UVa、Ural、SGU、SPOJ、TC,以及各國的奧林匹剋信息學(Olympiad in lnformatics,簡稱OI)競賽。全書分為兩個部分,第一部分“例題精講”針對各個算法配備經典例題,並提供細緻的解題思路,讀者可以通過這一部分學習和掌握算法;第二部分“海量題庫”按照算法分類羅列齣大量習題,並提供相應的題解思路,讀者可以利用這一部分的題目進行練習和訓練,更加熟練地運用各類算法。
我們在收集題目時,按照題目難易程度由易到難的順序分為5檔:★☆☆☆☆(1顆星)、★★☆☆☆(2顆星)、★★★☆☆(3顆星)、★★★★☆(4顆星)、★★★★★(5顆星),其中1顆星屬於分區賽的“前期題”,而5顆星則屬於“後期題”、“防退場題”。考慮到1顆星幾乎沒有思考難度,以及限於本書的篇幅,我們沒有將其收錄到書中,而其餘4檔難度的題目則適閤各種程度的選手。
本書編寫工作曆時兩年多,參與編寫工作的人員全部為上海交通大學ACM-ICPC隊的現役隊員,他們在親力親為割題的基礎上,將解題思路書寫成冊。書中隨處可見他們的思維過程以及做題時所遇到的睏難,相信讀者或多或少會産生些共鳴,從而獲得啓發。同時,本書的編寫也得到上海交通大學ACM-ICPC隊的退役隊員的大力幫助,他們參與選題、寫稿、審
稿等工作。
參與本書寫稿、審稿的人員主要有(按姓氏筆畫為序):尹天蛟、王凱南、戎術、劉奇、劉彥、劉爽、任春旭、李說、陳爽、陳彬毅、陳楠昕、佘召臣、張弘毅、張健夫、張捷均、楊思逸、壽鶴鳴、易茜、金斌、金天行、周玉姣、林承宇、鬍張廣達、饒國騰、郭曉旭、黃偲、黃文瀚、曹雪智、章雍哲、商靜波、彭上夫、譚天、繆沛晗、瞿鈞等。
參與本書選題工作的人員主要有(按姓氏筆畫為序):陳明騁、陳澤佳、吳卓傑、張培超、鄭曌、薑嘯、曹正等。
在此,衷心感謝所有為此書齣版做齣直接或間接貢獻的人!也真心祝願此書能夠給更多讀者帶來“割題”的快樂!
由於時間倉促,作者水平有限,疏漏、不當和不足之處在所難免,真誠地希望專傢和讀者朋友們不吝賜教。如果您在閱讀和使用此書過程中發現任何問題或有任何建議,懇請發郵件,我們將不勝感激。
編 者
2012年10月於上海
ACM國際大學生程序設計競賽(ACM-ICPC)係列叢書:題目與解讀 下載 mobi epub pdf txt 電子書