生活随笔
收集整理的這篇文章主要介紹了
算法竞赛入门经典经典例题及习题题解
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Github倉庫
有些例題沒找到完全相同的題目,找了類似的。
文章目錄
- 算法競賽入門經典第一版
- 第5章 基礎題目選解
- 5.1 字符串
- 5.2 高精度計算
- 5.3 排序與檢索
- 5.4 數學基礎
- 第六章 數據結構基礎
- 6.1 棧和隊列
- 6.2 鏈表
- 6.3 二叉樹
- 6.4 圖
- 第七章 暴力求解法
- 7.1 簡單枚舉
- 7.2 枚舉排列
- 7.3 子集生成
- 7.4 回溯法
- 7.5 隱式樹的遍歷
- 第八章 高效算法設計
- 8.1 算法初步分析
- 8.2 再談排序與檢索
- 8.4 遞歸與分治
- 8.3 貪心法
- 第九章 動態規劃初步
- 9.1 數字三角形
- 9.2 DAG上的動態規劃
- 9.3 0-1背包問題
- 9.4 遞歸結構中的動態規劃
- 9.5 集合上的動態規劃
- 第10章 數學概念與方法
- 10.1 數論初步
- 10.2 排列與組合
- 10.3 遞推關系
- 第11章 圖論模型與算法
- 11.1 再談樹
- 11.2 最短路問題
- 11.3 網絡流初步
- 算法競賽入門經典第二版
- 第3章 數組和字符串
- 第4章 函數和遞歸
- 第5章 C++與STL入門
- 第6章 數據結構基礎
- 鞏固
算法競賽入門經典第一版
第5章 基礎題目選解
5.1 字符串
ExampleProblemSolution
| 5.1.1 WERTYU | UVa 10082 - WERTYU | C++ |
| 5.1.2 TeX括號 | UVa 272 - TEX Quotes | C++ |
| 5.1.3 周期串 | UVa 455 - Periodic Strings | C++ |
5.2 高精度計算
ExampleProblemSolution
| 5.2.1 小學生算術 | UVa 10035 - Primary Arithmetic | C++ |
| 5.2.2 階乘的精確值 | UVa 623 - 500! | C++ |
5.3 排序與檢索
ExampleProblemSolution
| 5.3.1 6174問題 | NYOJ 57 6174問題 | C++ |
| 5.3.2 字母重排 | UVa 642 - Word Amalgamation | C++ |
5.4 數學基礎
ExampleProblemSolution
| 5.4.1 Cantor的數表 | UVa 264 - Count on Cantor | C++ |
| 5.4.2 因子和階乘 | UVa 160 - Factors and Factorials | C++ |
| 5.4.3 果園里的樹 | UVa 143 - Orchard Trees | C++ |
| 5.4.4 多少塊土地 | UVa 10213 - How Many Pieces of Land ? | C++/Java |
第六章 數據結構基礎
6.1 棧和隊列
ExampleProblemSolution
| 6.1.1 卡片游戲 | UVa 10935 - Throwing cards away I | C++ |
| 6.1.2 鐵軌 | UVa 514 - Rails | C++ |
6.2 鏈表
ExampleProblemSolution
| 6.2.1 移動小球 | NOJ 1099 移動小球 | C++ |
6.3 二叉樹
ExampleProblemSolution
| 6.3.1 小球下落 | UVa 679 - Dropping Balls | C++ |
| 6.3.2 層次遍歷 | UVa 122 - Trees on the level | C++ |
| 6.3.3 二叉樹重建 | UVa 536 - Tree Recovery | C++ |
6.4 圖
ExampleProblemSolution
| 6.4.1 黑白圖像 | UVa 572 - Oil Deposits | C++ |
| 6.4.2 走迷宮 | POJ 3984 迷宮問題 | C++ |
| 6.4.3 拓撲排序 | HDUOJ 1285 確定比賽名次 | C++ |
| 6.4.4 歐拉回路 | POJ 1041 John’s trip | C++ |
第七章 暴力求解法
7.1 簡單枚舉
ExampleProblemSolution
| 7.1.1 除法 | UVa 725 - Division | C++ |
| 7.1.2 最大乘積 | UVa 11059 - Maximum Product | C++ |
| 7.1.3 分數拆分 | UVa 10976 - Fractions Again?! | C++ |
| 7.1.4 雙基回文數 | OpenJudge 4831 雙基回文數 | C++ |
7.2 枚舉排列
ExampleProblemSolution
| 7.2.1 生成1~n的排列/7.2.2 生成可重集的排列 | UVa 10098 - Generating Fast | C++ |
| 7.2.4 下一個排列 | LeetCode 31. Next Permutation | C++ |
7.3 子集生成
ExampleProblemSolution
| 7.3 子集生成 | POJ 2718 Smallest Difference | C++ |
7.4 回溯法
ExampleProblemSolution
| 7.4.1 八皇后問題 | UVa 750 - 8 Queens Chess Problem | C++ |
| 7.4.2 素數環 | UVa 524 - Prime Ring Problem | C++ |
| 7.4.3 困難的串 | UVa 129 - Krypton Factor | C++ |
| 7.4.4 帶寬 | UVa 140 - Bandwidth | C++ |
7.5 隱式樹的遍歷
ExampleProblemSolution
| 7.5.1_1 最優程序 | POJ 1480 Optimal Programs | C++ |
| 7.5.1_2 埃及分數 | UVa 12558 - Egyptian Fractions (HARD version) | C++ |
| 7.5.2 倒水問題 | UVa 10603 - Fill | C++ |
| 7.5.3 八數碼問題 | Vijos 1360 八數碼問題 | C++ |
第八章 高效算法設計
8.1 算法初步分析
ExampleProblemSolution
| 8.1 最大連續和 | HDUOJ 1003 Max Sum | C++ |
8.2 再談排序與檢索
ExampleProblemSolution
| 8.2.1_1 歸并排序 | LintCode 463. Sort Integers | C++ |
| 8.2.1_2 逆序對數 | POJ 1804 Brainman | C++ |
| 8.2.2 快速排序 | SJTUOJ 1525. 第K小的數 | C++ |
| 8.2.3 二分查找 | LintCode 457. Classical Binary Search | C++ |
8.4 遞歸與分治
ExampleProblemSolution
| 8.3.1 棋盤覆蓋問題 | NYOJ 45 棋盤覆蓋 | C++ |
| 8.3.2 循環日程表問題 | NoneOJ 1 Cycle Schedule | C++ |
| 8.3.3 巨人與鬼 | UVa 1411 - Ants | C++ |
| 8.3.4 非線性方程求根 | UVa 10341 - Solve It | C++ |
| 8.3.5 最大值最小化 | UVa 714 - Copying Books | C++ |
8.3 貪心法
ExampleProblemSolution
| 8.4.1 最優裝載問題 | NoneOJ 2 Optimal Loading | Java |
| 8.4.2 部分背包問題 | NoneOJ 3 Partial Bag | Java |
| 8.4.3 乘船問題 | NYOJ 71 獨木舟上的旅行 | C++ |
| 8.4.4 選擇不相交區間 | NOJ 1269 區間相交問題 | Java |
| 8.4.5 區間選點問題 | UVa 10148 - Advertisement | C++ |
| 8.4.6 區間覆蓋問題 | NoneOJ 4 Interval Coverage | C++ |
| 8.4.7 Huffman編碼 | NoneOJ 5 Coding | C++ |
第九章 動態規劃初步
9.1 數字三角形
ExampleProblemSolution
| 9.1 數字三角形 | POJ 1163 The Triangle | Java |
9.2 DAG上的動態規劃
ExampleProblemSolution
| 9.2_1 嵌套矩形 | NYOJ 16 矩形嵌套 | C++ |
| 9.2_2 硬幣問題 | Liuser’s OJ 725 硬幣問題 | C++ |
9.3 0-1背包問題
ExampleProblemSolution
| 9.3_1 物品無限的背包問題 | HDUOJ 1248 寒冰王座 | C++ |
| 9.3_2 0-1背包問題 | HDUOJ 2602 Bone Collector | C++ |
9.4 遞歸結構中的動態規劃
ExampleProblemSolution
| 9.4.1 表達式上的動態規劃 | UVa 348 - Optimal Array Multiplication Sequence | C++ |
| 9.4.2 凸多邊形上的動態規劃 | UVa 1331 - Minimax Triangulation | C++ |
| 9.4.3 樹上的動態規劃 | UVa 1220 - Party at Hali-Bula | C++ |
9.5 集合上的動態規劃
ExampleProblemSolution
| 9.5 集合上的動態規劃 | UVa 10911 - Forming Quiz Teams | C++ |
第10章 數學概念與方法
10.1 數論初步
ExampleProblemSolution
| 10.1.1 除法表達式 | Lutece 469 除法表達式 | C++ |
| 10.1.2 無平方因子的數 | HDUOJ 3826 Squarefree number | C++ |
| 10.1.3 直線上的點 | POJ 1061 青蛙的約會 | C++ |
| 10.1.4_1 大整數取模 | NoneOJ 6 Big Int Module | C++ |
| 10.1.4_2 冪取模 | NoneOJ 7 Power Module | C++ |
| 10.1.4_3 模線性方程 | POJ 2142 The Balance | C++ |
10.2 排列與組合
ExampleProblemSolution
| 10.2.1 無關的元素 | UVa 1635 - Irrelevant Elements | C++ |
| 10.2.2_1 約數的個數 | UVa 294 - Divisors | C++ |
| 10.2.2_2 小于n且與n互素的個數 | UVa 10820 - Send a Table | C++ |
| 10.2.4 離散概率初步 | LightOJ 1104 Birthday Paradox | C++ |
10.3 遞推關系
ExampleProblemSolution
| 10.3.1 漢諾塔 | OpenJudge_Bailian 4147 Hanoi | C++ |
| 10.3.2 Fibonacci數列 | 51Nod-1242 斐波那契數列的第N項 | C++ |
| 10.3.3 Catalan數 | UVa 991 - Safe Salutations | C++ |
| 10.3.4 危險的組合 | UVa 580 - Critical Mass | C++ |
| 10.3.5 統計n-k中特殊集的數目 | 入門OJ 1377 N-K集合 | C++ |
第11章 圖論模型與算法
11.1 再談樹
ExampleProblemSolution
| 11.1.1 無根樹轉有根樹 | NYOJ 20 吝嗇的國度派生類可以訪問基類中的protected | C++ |
| 11.1.2 表達式樹 | POJ 1686 Lazy Math Instructor | C++ |
| 11.1.3 最小生成樹 | UVa 10034 - Freckles | C++ |
| 11.1.4 并查集 | HDUOJ 1863 暢通工程 | C++ |
11.2 最短路問題
ExampleProblemSolution
| 11.2.1-3 Dijkstra算法 | HDUOJ 2544 最短路 | C++ |
| 11.2.4 Bellman-Ford算法 | POJ 3259 Wormholes | C++ |
11.3 網絡流初步
ExampleProblemSolution
| 11.3.2 增廣路算法 | HDUOJ 1532 Drainage Ditches | C++ |
| 11.3.3 最小割最大流定理 | HDUOJ 3987 Harry Potter and the Forbidden Forest | C++ |
| 11.3.4 最小費用最大流問題 | | C++ |
算法競賽入門經典第二版
第3章 數組和字符串
例題
ExampleProblemSolution
| 例題3-1 | UVa 272 - TEX Quotes | C++ |
| 例題3-2 | UVa 10082 - WERTYU | C++ |
| 例題3-3 | UVa 401 - Palindromes | C++ |
| 例題3-4 | UVa 340 - Master-Mind Hints | C++ |
| 例題3-5 | UVa 1583 - Digit Generator | C++ |
| 例題3-6 | UVa 1584 - Circular Sequence | C++ |
習題
ExampleProblemSolution
| 習題3-1 | UVa 1585 - Score | C++ |
| 習題3-2 | UVa 1586 - Molar mass | C++ |
| 習題3-3 | UVa 1225 - Digit Counting | C++ |
| 習題3-4 | UVa 455 - Periodic Strings | C++ |
| 習題3-5 | UVa 227 - Puzzle | C++ |
| 習題3-6 | UVa 232 - Crossword Answers | C++ |
| 習題3-7 | UVa 1368 - DNA Consensus String | C++ |
| 習題3-8 | UVa 202 - Repeating Decimals | C++ |
| 習題3-9 | UVa 10340 - All in All | C++ |
| 習題3-10 | UVa 1587 - Box | C++ |
| 習題3-11 | UVa 1588 - Kickdown | C++ |
| 習題3-12 | UVa 11809 - Floating-Point Numbers | C++ |
第4章 函數和遞歸
例題
ExampleProblemSolution
| 例題4-1 | UVa 1339 - Ancient Cipher | C++ |
| 例題4-2 | UVa 489 - Hangman Judge | C++ |
| 例題4-3 | UVa 133 - The Dole Queue | C++ |
| 例題4-4 | UVa 213 - Message Decoding | C++ |
| 例題4-5 | UVa 512 - Spreadsheet Tracking | C++ |
| 例題4-6 | UVa 12412 - A Typical Homework (a.k.a Shi Xiong Bang Bang Mang) | C++ |
習題
ExampleProblemSolution
| 習題4-1 | UVa 1589 - Xiangqi | C++ |
| 習題4-2 | UVa 201 - Squares | C++ |
| 習題4-3 | UVa 220 - Othello | C++ |
| 習題4-4 | UVa 253 - Cube painting | C++ |
| 習題4-5 | UVa 1590 - IP Networks | JAVA |
| 習題4-6 | UVa 508 - Morse Mismatches | JAVA |
| 習題4-7 | UVa 509 - RAID! | JAVA |
| 習題4-8 | UVa 12108 - Extraordinarily Tired Students | JAVA |
| 習題4-9 | UVa 1591 - Data Mining | JAVA |
| 習題4-10 | UVa 815 - Flooded! | JAVA |
第5章 C++與STL入門
例題
ExampleProblemSolution
| 例題5-1 | UVa 10474 - Where is the Marble? | JAVA |
| 例題5-2 | UVa 101 - The Blocks Problem | JAVA |
| 例題5-3 | UVa 10815 - Andy’s First Dictionary | JAVA |
| 例題5-4 | UVa 156 - Ananagrams | JAVA |
| 例題5-5 | UVa 12096 - The SetStack Computer | JAVA |
| 例題5-6 | UVa 540 - Team Queue | JAVA |
| 例題5-7 | UVa 136 - Ugly Numbers | JAVA |
| 例題5-8 | UVa 400 - Unix ls | JAVA |
| 例題5-9 | UVa 1592 - Database | JAVA |
| 例題5-10 | UVa 207 - PGA Tour Prize Money | JAVA |
| 例題5-11 | UVa 814 - The Letter Carrier’s Rounds | JAVA |
| 例題5-12 | UVa 221 - Urban Elevations | JAVA |
習題
ExampleProblemSolution
| 習題5-1 | UVa 1593 - Alignment of Code | |
| 習題5-2 | UVa 1594 - Ducci Sequence | |
| 習題5-3 | UVa 10935 - Throwing cards away I solved | |
| 習題5-4 | UVa 10763 - Foreign Exchange | |
| 習題5-5 | UVa 10391 - Compound Words | |
| 習題5-6 | UVa 1595 - Symmetry | |
| 習題5-7 | UVa 12100 - Printer Queue | |
| 習題5-8 | UVa 230 - Borrowers | |
| 習題5-9 | UVa 1596 - Bug Hunt | |
| 習題5-10 | UVa 1597 - Searching the Web | |
| 習題5-11 | UVa 12504 - Updating a Dictionary | |
| 習題5-12 | UVa 511 - Do You Know the Way to San Jose? | |
| 習題5-13 | UVa 822 - Queue and A | |
| 習題5-14 | UVa 1598 - Exchange | |
| 習題5-15 | UVa 12333 - Revenge of Fibonacci | |
| 習題5-16 | UVa 212 - Use of Hospital Facilities | |
第6章 數據結構基礎
6.1 再談棧和隊列
例題
ExampleProblemSolution
| 例題6-1 | 210 - Concurrency Simulator | JAVA |
| 例題6-2 | | JAVA |
鞏固
表達式樹
UVa 12219 - Common Subexpression Elimination(https://github.com/Ubuntu1996/AOAPC/tree/master/UVa_12219-Common_Subexpression_Elimination)
最小生成樹
UVa 1395 - Slim Span
總結
以上是生活随笔為你收集整理的算法竞赛入门经典经典例题及习题题解的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。