本書精選Atcoder競賽中的訓練題目,初步探討了CSP-J組認證中常見的簡單算法和計算機數(shù)學問題,內(nèi)容涵蓋排序、枚舉、模擬、二分、貪心、搜索、數(shù)據(jù)結構、動態(tài)規(guī)劃、數(shù)論、組合數(shù)學等多個領域,以及C++中STL的高效使用方法。這些內(nèi)容是算法競賽中不可或缺的知識,旨在幫助讀者培養(yǎng)計算思維,初步掌握簡單算法問題的思維方法和實現(xiàn)技巧。
更多科學出版社服務,請掃碼獲取。
2004年畢業(yè)于華北水利水電學院機械設計專業(yè)曾就職于上海微軟全球技術支持中心,擔任.net虛擬機(CLR)以及Visual Studio Extensibility技術咨詢顧問。2008年進入金融IT行業(yè),就職于北京贊同信息技術有限公司,擔任高級技術經(jīng)理,負責基于.net平臺的銀行業(yè)務平臺開發(fā)。專注于人工智能以及算法技術在金融科技領域的應用。同時擔任四川大學ACM/ICPC算法競賽集訓隊特邀指導老師,榕陽編程NOI、NOIP指導教練。所帶學員多次獲得ICPC金/銀牌,進入NOI省隊等。機械設計《算法競賽入門經(jīng)典:習題與解答》京東評論數(shù)20000+,《算法競賽入門經(jīng)典——訓練指南 升級版》京東評論數(shù)20000+,《算法競賽入門經(jīng)典——算法實現(xiàn)》京東評論數(shù)20000+無
目錄
第1章排序問題
例題
你知道第二高的山嗎?
(ABC201B-Do you know the second highest mountain?)2
最小化排序(ABC242B-Minimize Ordering)4
選舉(ABC231B-Election)5
新詞典序排序(ABC219C-Neo-lexicographic Ordering)8
習題
朋友和旅行費用(ABC203C-Friends and Travel costs)12
公平的糖果分發(fā)(ABC208C-Fair Candy Distribution)13
最終日(ABC228C-Final Day)15
計數(shù)不同的整數(shù)(ABC240B-Count Distinct Integers)16
需要更優(yōu)秀的學生 !(ABC260B-Better Students Are Needed!)17
最大偶數(shù)(ABC272C-Max Even)19
第(K+1)大的數(shù)(ABC273C-(K+1)-th Largest Number)20
循環(huán)賽(ABC323B-Round-Robin Tournament)22
世界巡回賽決賽(ABC323C-World Tour Finals)23
第2章算法設計策略
例題
AtCoder 公寓(ABC203B-AtCoder Condominium)28
有多少個?(ABC214B-How many?)29
單調(diào)性(ABC224B-Mongeness)31
階乘硬幣(ABC208B-Factorial Yen Coin)33
計數(shù) 2(ABC231C-Counting 2)36
第K 個被排除的數(shù)(ABC205D-Kth Excluded)38
最長的 X(ABC229D-Longest X)40
矩陣縮減(ABC264C-Matrix Reducing)42
習題
矩形(ABC218D-Rectangles)47
秘密數(shù)字(ABC201C-Secret Number)48
打字錯誤(ABC221B-typo)49
KEYENCE 大樓(ABC227B-KEYENCE building)50
選擇乘法(ABC221C-Select Mul)52
奶酪(ABC229C-Cheese)53
導火線(ABC223C-Doukasen)54
錦標賽結果(ABC261B-Tournament Result)56
買一盒牛奶(ABC331B-Buy One Carton of Milk)57
T 恤(ABC332C-T-shirts)58
襪子 2(ABC334C-Socks 2)60
四面體數(shù)(ABC335B-Tetrahedral Number)61
移動物品(ABC360C-Move It)63
最小差值(ABC212C-Min Difference)64
購買一個整數(shù)(ABC146C-Buy an Integer)66
區(qū)間計數(shù)查詢(ABC248D-Range Count Query)67
通關(ABC258D-Trophy)68
區(qū)間并集(ABC256D-Union of Interval)69
三張卡片(ARC146A-Three Cards)71
A?BB(ARC136A-A?BB)72
第3章綜合訓練
例題
索引×A(連續(xù)版)(ABC267C-Index×A(Continuous ver.))76
±1操作 2(ABC255D-±1 Operation 2)78
三角形?(ABC224C-Triangle?)81
劃分區(qū)間(ABC349D-Divide Interval)84
ABC 猜想(ABC227C-ABC conjecture)87
睡眠日志(ABC305D-Sleep Log)89
習題
循環(huán)打擊(ABC211B-Cycle Hit)94
重新排列卡片(ABC213C-Reorder Cards)94
碰撞2(ABC243C-Collision 2)96
K交換(ABC254C-K Swap)99
葫蘆(ABC263A-Full House)100
大于我的數(shù)之和(ABC331C-Sum of Numbers Greater Than Me)101
區(qū)間(ABC207C-Many Segments)102
弱密碼(ABC212B-Weak Password)104
分配(ABC214C-Distribution)105
瑞士制錦標賽(ABC222C-Swiss-System Tournament)107
優(yōu)惠券(ABC246C-Coupon)109
最多3個(ABC251B-At Most 3 (Judge ver.))111
機器人小高(ABC257C-Robot Takahashi)112
垂直閱讀(ABC360B-Vertical Reading)114
使其變窄(ABC361C-Make Them Narrow)115
分瓶?(ABC267B-Split?)116
瓷磚圖案(ABC331D-Tile Pattern)118
另一個求和問題(ABC353D-Another Sigma Problem)121
鋼琴2(ABC355B-Piano 2)122
伊呂波和俳句(新 ABC 版)
(ABC265D-Iroha and Haiku (New ABC Edition))123
字符串形成(ABC158D-String Formation)124
技能提升(ABC167C-Skill Up)126
橫豎(ABC173C-H and V)128
IPFL(ABC199C-IPFL)130
變?yōu)?的倍數(shù)(ABC182C-To 3)131
交換帽子(ABC244D-Swap Hats)133
"redocta"交換(i,i+1)(ABC264D-"redocta".swap(i,i+1))134
相等的漢明距離(ARC151A-Equal Hamming Distances)135
橋梁與防水布(ARC134A-Bridge and Sheets)136
最大加法(ARC120A-Max Add)137
第4章數(shù)論問題
例題
按位異或(ABC213A-Bitwise Exclusive Or)140
四個點(ABC246A-Four Points)141
向右移動(ABC247A-Move Right)143
十六進制(ABC271A-484558)144
習題
比薩(ABC238B-Pizza)147
長序列(ABC220C-Long Sequence)148
日歷驗證器(ABC225C-Calendar Validator)149
最后一張卡(ABC227A-Last Card)150
地震震級尺度(ABC221A-Seismic magnitude scales)151
K進制(ABC220B-Base K)152
新年快樂。ˋBC234C-Happy New Year!)153
中國餐館(ABC268C-Chinese Restaurant)154
圣誕樹(ABC334B-Christmas Trees)156
末尾零計數(shù)(ABC336B-CTZ)157
偶數(shù)數(shù)字(ABC336C-Even Digits)157
Sigma問題(ABC353C-Sigma Problem)158
掩碼位計數(shù)(ABC356D-Masked Popcount)159
1-2-4測試(ABC270A-1-2-4 Test)160
破損的四舍五入(ABC273B-Broken Rounding)161
ABC-DEF(ABC275B-ABC-DEF)163
最大公約數(shù)和最小公倍數(shù)問題(NOIP2001 普及組 T2)164
比例簡化(NOIP2014普及組T2)164
優(yōu)秀的拆分(CSP-J-2020 T1)165
數(shù)對乘積之和(ABC177C-Sum of product of pairs)166
零食(ABC148C-Snack)167
奶油泡芙(ABC180C-Cream puff)168
不幸的7(ABC186C-Unlucky 7)169
許多橙子(ABC195B-Many Oranges)170
模數(shù)(ABC266B-Modulo Number)171
第5章STL與數(shù)據(jù)結構
例題
矩陣轉置(ABC237B-Matrix Transposition)174
排隊2(ABC337C-Lining Up 2)176
合并球(ABC351C-Merge the balls)178
詩歌在線評判(ABC251C-Poem Online Judge)181
新文件夾(1)(ABC261C-NewFolder(1))183
五個整數(shù)(ABC268A-Five Integers)186
維護多個序列(ABC271B-Maintain Multiple Sequences)187
最大值-最小值查詢(ABC253C-Max-Min Query)190
習題
龍的追蹤(ABC335C-Loong Tracking)193
插入(ABC361A-Insert)194
彩色糖果(ABC210C-Colorful Candies)195
計數(shù)數(shù)組(ABC226B-Counting Arrays)196
第K 次查詢(ABC235C-The Kth Time Query)198
漫畫(ABC271C-Manga)200
合并史萊姆(ABC323D-Merge Slimes)201
數(shù)獨(ABC327C-Number Place)203
A+B+C(ABC344C-A+B+C)206
彩色豆子(ABC348C-Colorful Beans)207
矩陣縮減(ABC264C-Matrix Reducing)209
恰好K個(ABC249C-Just K)211
子集掩碼(ABC269C-Submask)212
鑰匙(ABC356C-Keys)214
面條(ABC241B-Pasta)216
計數(shù)區(qū)間(ABC233D-Count Interval)217
查詢多重集合(ABC212D-Querying Multiset)218
公交換乘(CSP-J-2019 T2)220
LR插入(ABC237D-LR insertion)222
前綴第K大值(ABC234D-Prefix K-th Max)223
最大值對最小值取模(ARC147A-Max Mod Min)224
分數(shù)的多樣性(ABC343D-Diversity of Scores)225
無法表示(ABC193C-Unexpressed)228
圓柱體(ABC247D-Cylinder)228
奇怪的球(ABC240D-Strange Balls)230
排列子序列(ABC352D-Permutation Subsequence)232
第6章搜索類問題初探
例題
單調(diào)遞增(ABC263C-Monotonically Increasing)236
乘積(ABC233C-Product)238
又一個遞歸函數(shù)(ABC275D-Yet Another Recursive Function)241
習題
選數(shù)(NOIP2002 普及組 T2)244
傳球游戲(NOIP2008 普及組 T3)244
分成互質組(OpenJudge 7834)245
網(wǎng)格和磁鐵(ABC351D-Grid and Magnet)246
使用六邊形網(wǎng)格(ABC269D-Do use hexagon grid)247
第7章圖論基礎與樹
例題
變形蟲(ABC274C-Ameba)252
二叉樹上的移動(ABC243D-Moves on Binary Tree)254
擦除葉子(ABC333D-Erase Leaves)256
旅行(ABC204C-Tour)260
星形樹判定(ABC225B-Star or Not)263
武術家(ABC226C-Martial artist)265
三角形(簡單版)(ABC262B-Triangle (Easier))268
習題
圖同構(ABC232C-Graph Isomorphism)271
簡單路徑(ABC270C-Simple path)273
回憶那些日子(ABC317C-Remembering the Days)275
鄰接矩陣(ABC343B-Adjacency Matrix)276
每個人都是朋友(ABC272B-Everyone is Friends)278
小高的旅行(ABC213D-Takahashi Tour)279
對稱二叉樹(NOIP2018 普及組 T4)281
FBI樹(NOIP2004 普及組 T3)284
行走的小高(ABC175C-Walking Takahashi)285
旅行(ABC183C-Travel)286
碰撞(ABC209D-Collision)288
新朋友(ABC350D-New Friends)290
第8章組合遞推與動態(tài)規(guī)劃
例題
排列檢查(ABC205B-Permutation Check)294
可交換(ABC206C-Swappable)296
再來一個aab aba baa(ABC215C-One More aab aba baa)298
寶石變換(ABC260C-Changing Jewels)299
不相等(ABC209C-Not Equal)302
跳躍的小高(ABC240C-Jumping Takahashi)304
索引×A(非連續(xù)版)(ABC267D-Index×A(Not Continuous ver.))306
裝箱問題(NOIP2001 普及組 T4)308
習題
選擇元素(ABC245C-Choose Elements)311
骰子和(ABC248C-Dice Sum)312
不同的字符串(ABC225A-Distinct Strings)313
chokudai(ABC211C-chokudai)313
1111gal 密碼(ABC242C-1111gal password)314
最小最大對(ABC262C-Min Max Pair)315
交換拼圖(ABC332D-Swapping Puzzle)316
翻轉和調(diào)整(ABC271D-Flip and Adjust)319
擺花(NOIP2012普及組T3)321
方格取數(shù)(CSP-J2020 T4)322
FG操作(ABC220D-FG operation)323
弱小的小高(ABC232D-Weak Takahashi)325
LR約束(ARC124A-LR Constraints)326
等差數(shù)列(ARC123A-Arithmetic Sequence)328
刪除一個字符(ARC130A-Remove One Character)329