前言:
这里主要记录本人在学习紫书过程中充分理解过的题目的AC代码,便于以后回顾时查找代码和思路,毕竟看别人的真的有点难懂。此外,本书甚至是本书之外的相关知识学习也可能在此留下记录。
作为一只小白,看待问题就是新手角度,如果发现什么幼稚的代码或语句,不妨一笑了之,但是最好还是委婉地提醒一下我吧。
不太懂怎么分类,我就根据章节标题以及代码重点来分类了。
本书全题链接:https://vjudge.net/article/45
第三章 数组和字符串
书中编号 | 题目编号 | 标题 | 分类 | 备注 |
---|---|---|---|---|
例题3-1 | UVA272 | Tex Quotes | 字符串 | 水题 |
例题3-2 | UVA10082 | WERTYU | 字符串 | 常量数组 |
例题3-3 | UVA401 | Palindromes | 字符串 | 水题,映射 |
例题3-4 | UVA340 | Master-Mind Hints | 数组 | 思维,英语 |
例题3-5 | UVA1583 | Digit Generator | 数组 | 打表 |
例题3-6 | UVA1584 | Circular Sequence | 字符串 | 水题,取模 |
习题3-1 | UVA1585 | Score | 字符串 | 水题,照顾小白 |
习题3-2 | UVA1586 | Molar mass | 字符串 | 水题 |
习题3-3 | UVA1225 | Digit Counting | 数组 | 暴力 |
习题3-4 | UVA455 | Periodic Strings | 字符串 | 取模,循环,水题 |
习题3-5 | UVA227 | Puzzle | 字符串,数组 | 试错 |
习题3-6 | UVA232 | Crossword Answers | 字符串,数组 | 水题 |
习题3-7 | UVA1368 | DNA Consensus String | 字符串 | 水题 |
习题3-8 | UVA202 | Repeating Decimals | 数组 | 思维 |
习题3-9 | UVA10340 | All in All | 字符串 | 水题 |
习题3-10 | UVA1587 | Box | 数组 | 思维 |
习题3-11 | UVA1588 | Kickdown | 字符串 | 水题 |
习题3-12 | UVA11809 | Floating-Point Numbers | 字符串,数组 | 思维,数学 |
第四章 函数和递归
书中编号 | 题目编号 | 标题 | 分类 | 备注 |
---|---|---|---|---|
例题4-1 | UVA1339 | Ancient Cipher | 函数 | 思维 |
例题4-2 | UVA489 | Hangman Judge | 函数 | 水题 |
例题4-3 | UVA133 | The Dole Queue | 函数 | 水题,取模 |
例题4-4 | UVA213 | Message Decoding | 函数 | 二进制 |
例题4-5 | UVA512 | Spreadsheet Tracking | 函数 | 复杂模拟 |
例题4-6 | UVA12412 | A Typical Homework (a.k.a Shi Xiong Bang Bang Mang) | 函数 | 复杂模拟 |
习题4-1 | UVA1589 | Xiangqi | 函数 | 复杂模拟 |
习题4-2 | UVA201 | Squares | 函数 | 简单模拟 |
习题4-3 | UVA220 | Othello | 递归,函数 | 复杂模拟 |
习题4-4 | UVA253 | Cube painting | 函数 | 思维 |
习题4-5 | UVA1590 | IP Networks | 函数 | 二进制 |
习题4-6 | UVA508 | Morse Mismatches | 函数 | 阅读理解,中级模拟 |
习题4-7 | UVA509 | RAID! | 函数 | 阅读理解,中级模拟 |
习题4-8 | UVA12108 | Extraordinarily Tired Students | 函数 | 简单模拟 |
习题4-9 | UVA1591 | Data Mining | 函数 | 阅读理解 |
习题4-10 | UVA815 | Flooded! | 函数 | 思维 |
第五章 C++与STL入门
书中编号 | 题目编号 | 标题 | 分类 | 备注 |
---|---|---|---|---|
例题5-1 | UVA10474 | Where is the Marble? | <algorithm> | 排序和查找 |
例题5-2 | UVA101 | The Blocks Problem | <vector> | vector的使用 |
例题5-3 | UVA10815 | Andy’s First Dictionary | <set> | set的使用 |
例题5-4 | UVA156 | Ananagrams | <map> | map的应用 |
例题5-5 | UVA12096 | The SetStack Computer | <stack> | stack与STL其他容器的综合运用 |
例题5-6 | UVA540 | Team Queue | <queue> | queue与STL其他容器的综合运用 |
例题5-7 | UVA136 | Ugly Numbers | <priority_queue> | priority_queue的使用 |
例题5-8 | UVA400 | Unix ls | <string> | 排序和字符串处理 |
例题5-9 | UVA1592 | Alignment of Code | <map> | map的妙用 |
例题5-10 | UVA207 | PGA Tour Prize Money | 耐力 | 排序和其他细节处理 |
例题5-11 | UVA814 | The Letter Carrier’s Rounds | STL综合 | 字符串以及STL容器的综合运用 |
例题5-12 | UVA221 | Urban Elevations | <algorithm> | 离散化 |
习题5-1 | UVA1593 | Alignment of Code | <string> | 水题 |
习题5-2 | UVA1594 | Ducci Sequence | <vector> | 水题 |
习题5-3 | UVA10935 | Throwing cards away I | <vector> | 水题 |
习题5-4 | UVA10763 | Foreign Exchange | <map> | 水题 |
习题5-5 | UVA10391 | Compound Words | <string> | 水题 |
习题5-6 | UVA1595 | Symmetry | <map> | 水题 |
习题5-7 | UVA12100 | Printer Queue | <vector> | 水题 |
习题5-8 | UVA230 | Borrowers | STL综合 | 中级模拟 |
习题5-9 | UVA1596 | Bug Hunt | STL综合 | 中级模拟 |
习题5-10 | UVA1597 | Searching theWeb | STL综合 | 中级模拟 |
习题5-11 | UVA12504 | Updating a Dictionary | STL综合 | 水题 |
习题5-12 | UVA511 | Do You Know The Way to San Jose? | STL综合 | 复杂模拟 |
习题5-13 | UVA822 | Queue and A | STL综合 | 复杂模拟,阅读理解 |
习题5-14 | UVA1598 | Exchange | STL综合 | 复杂模拟,阅读理解 |
习题5-15 | UVA12333 | Revenge of Fibonacci | STL综合 | 大整数类,缩小范围 |
习题5-16 | UVA212 | Use of Hospital Facilities | <algorithm> | 中级模拟,输出格式 |
第六章 数据结构基础
书中编号 | 题目编号 | 标题 | 分类 | 备注 |
---|---|---|---|---|
例题6-1 | UVA210 | Concurrency Simulator | 队列 | 双端队列的应用 |
例题6-2 | UVA514 | Rails | 栈 | 水题 |
例题6-3 | UVA442 | Matrix Chain Multiplication | 栈 | 水题 |
例题6-4 | UVA11988 | Broken Keyboard(a.k.a. Beiju Text) | 链表 | 链表的数组实现 |
例题6-5 | UVA12657 | Boxes in aline | 链表 | 双向循环链表 |
例题6-6 | UVA679 | Dropping Balls | 树 | 完全二叉树编号 |
例题6-7 | UVA122 | Trees on the level | 树 | 二叉树的动态创建与BFS |
例题6-8 | UVA548 | Tree | 树 | DFS |
例题6-9 | UVA839 | Not so Moblie | 树 | 思维 |
例题6-10 | UVA699 | The Falling Leaves | 树 | 水题、DFS |
例题6-11 | UVA297 | Quadtrees | 树 | 巧妙理解题意、DFS |
例题6-12 | UVA572 | Oil Deposits | 图 | 水题、DFS |
例题6-13 | UVA1103 | Ancient Messages | 图 | 思维 |
例题6-14 | UVA816 | Abbott’s Revenge | 图 | 图的最短路(BFS) |
例题6-15 | UVA10305 | Ordering Tasks | 图 | 拓扑排序 |
例题6-16 | UVA10129 | Play On Words | 图 | 欧拉路 |
例题6-17 | UVA10562 | Undraw the Trees | 树 | 多叉树的DFS |
例题6-18 | UVA12171 | Sculpture | 图 | 理解离散化;floodfill |
例题6-19 | UVA1572 | Self-Assembly | 图 | 有向环图 |
例题6-20 | UVA1599 | Ideal Path | 图 | BFS,逆搜索 |
例题6-21 | UVA506 | System Dependencies | 图 | 中级模拟,拓扑序 |
例题6-22 | UVA11853 | Paintball | 图 | 对偶图,BFS |
习题6-1 | UVA673 | Parentheses Balence | 栈 | 水题 |
习题6-2 | UVA712 | S-Trees | 树 | 水题 |
习题6-3 | UVA536 | Tree Recovery | 树 | 水题 |
习题6-4 | UVA439 | Knight Moves | 图 | 简单BFS |
习题6-5 | UVA1600 | Patrol Robot | 图 | 水题 |
习题6-6 | UVA12166 | Equilibrium Mobile | 树 | 二叉树,思维技巧 |
习题6-7 | UVA804 | Petri Net Simulation | 杂题 | 模拟,水题 |
习题6-8 | UVA806 | Spatial Structures | 四分树 | DFS,水题 |
习题6-9 | UVA127 | "Accordian"Patience | 链表 | vector模拟链表 |
习题6-10 | UVA246 | 10-20-30 | 队列 | vector模拟双端队列 |
习题6-11 | UVA10410 | Tree Reconstruction | 树 | 加深理解DFS和BFS, 思维 |
习题6-12 | UVA810 | A Dicey Promble | 图 | 思维,DFS |
习题6-13 | UVA215 | Spreadsheet Calculator | 杂题 | 模拟,水题 |
习题6-14 | UVA12118 | Inspector’s Dilemma | 图 | 欧拉路 |
第七章 暴力求解法
书中编号 | 题目编号 | 标题 | 分类 | 备注 |
---|---|---|---|---|
例题7-1 | UVA725 | Division | 暴力枚举 | 选择合适的枚举对象 |
例题7-2 | UVA11059 | Maximum Product | 暴力枚举 | 枚举连续子序列 |
例题7-3 | UVA10976 | Fractions Again?! | 暴力枚举 | 缩小枚举范围 |
例题7-4 | UVA524 | Prime Ring Problem | 回溯法 | 回溯法和生成-测试法的比较 |
例题7-5 | UVA129 | Krypton Factor | 回溯法 | 隐性回溯,字符串 |
例题7-6 | UVA140 | Bandwidth | 回溯法 | 最优剪枝 |
例题7-7 | UVA1354 | Mobile Computing | 二进制法 | 枚举二叉树,好题 |
例题7-8 | UVA10603 | Fill | 优先队列 | 状态图,Dijkstra算法 |
例题7-9 | UVA1601 | The Morning after Halloween | 技巧优化 | 双向广搜,经典题 |
例题7-10 | UVA11212 | Editing a Book | 迭代剪枝 | IDA*算法 |
例题7-11 | UVA12325 | Zombie‘s Treasure Chest | 分类枚举 | 两种枚举法,好题 |
例题7-12 | UVA1343 | The Rotation Game | 迭代剪枝 | IDA*算法,模拟 |
例题7-13 | UVA1374 | Power Calculus | 迭代搜索 | 打表,IDA*算法 |
例题7-14 | UVA1602 | Lattice Animals | 数据结构,好题 | 生成n连块,考验思维,打表 |
例题7-15 | UVA1603 | Square Destyoyer | 迭代剪枝 | IDA*,思维技巧 |
习题 7-1 | UVA208 | Firetruck | 回溯法 | DFS |
习题7-2 | UVA225 | Golygons | 回溯法 | 注意细节,DFS |
习题7-3 | UVA211 | The Domino Effect | 回溯法 | 水题,注意格式 |
习题7-4 | UVA818 | Cuting Chains | 迭代搜索 | IDDFS |
习题7-5 | UVA690 | Pipeline Scheduling | 二进制法,好题 | 剪枝优化,二进制优化 |
习题7-6 | UVA12113 | Overlapping Squares | 暴力枚举 | 模拟,简单 |
习题7-7 | UVA12558 | Eg[y]ptian Fractions(HARD version) | 迭代剪枝 | IDA*,注意细节 |
习题7-8 | UVA12107 | Digit Puzzle | 迭代剪枝 | IDA*,细节 |
习题7-9 | UVA160 | Cubic Eight-Puzzle | 迭代剪枝 | IDA*,模拟 |
习题7-10 | UVA11214 | Guarding the Chessboard | 迭代搜索 | IDDFS |
习题7-11 | UVA12569 | Planning mobile robot on Tree(EASY Version) | 状态压缩 | BFS,技巧判重 |
习题7-12 | UVA1533 | Moving Pegs | 状态压缩 | 模拟,BFS水题 |
习题7-13 | UVA817 | According to Bartjens | 迭代搜索 | IDDFS |
习题7-14 | UVA307 | Sticks | 迭代剪枝 | 好题,IDDFS |
习题7-15 | UVA11882 | Biggest Number | 迭代剪枝 | A*算法 |
习题7-16 | UVA11846 | Finding Seats Again | 回溯法 | 模拟,水题 |
习题7-17 | UVA11694 | Gokigen Naname | 回溯法 | 细节,强剪枝,好题 |
习题7-18 | UVA10384 | The Wall Pusher | 迭代搜索 | IDDFS |
第八章 高效算法设计
书中编号 | 题目编号 | 标题 | 分类 | 备注 |
---|---|---|---|---|
例题8-1 | UVA120 | Stacks of Flapjacks | 构造法 | 简单模拟 |
例题8-2 | UVA1605 | Building for UN | 构造法 | 简单思维题 |
例题8-3 | UVA1152 | 4 Values Whose Sum is Zero | 二分法 | 中途相遇法 |
例题8-4 | UVA11134 | Fabled Rook | 贪心法 | 问题分解 |
例题8-5 | UVA11054 | Wine trading in Gergovia | 贪心法 | 思维推理 |
例题8-6 | UVA1606 | Amphiphilic Carbon Molecules | 扫描法 | 极角扫描法 |
例题8-7 | UVA11572 | Unique snowflakes | 滑动窗口 | 双指针 |
例题8-8 | UVA1471 | Defense Lines | 数据结构 | 使用数据结构加速算法 |
例题8-9 | UVA1451 | Average | 数形结合 | 类似凸包 |
例题8-10 | UVA714 | Copying Books | 二分法 | 二分找上限,贪心求答案 |
例题8-11 | UVA10954 | Add All | 贪心法 | 哈夫曼树思想 |
例题8-12 | UVA12627 | Erratic Expansion | 公式推理 | 前缀和,递归 |
例题8-13 | UVA11093 | Just Finish it up | 贪心法 | 简单思维题 |
例题8-14 | UVA1607 | Gates | 二分法 | 二进制,思维 |
例题8-15 | UVA12174 | Shuffle | 滑动窗口 | 思维,细节 |
例题8-16 | UVA1608 | Non-boring sequences | 分治法 | 中途相遇法的思路 |
例题8-17 | UVA1609 | Foul Play | 构造法 | 思维题 |
例题8-18 | UVA1442 | Cave | 扫描法 | 找规律 |
例题8-19 | UVA12265 | Selling Land | 扫描法 | 状态组织;单调栈 |
习题8-1 | UVA1149 | Bin Packing | 贪心法 | 水题 |
习题8-2 | UVA1610 | Party Games | 贪心法 | 注意字母范围 |
习题8-3 | UVA12545 | Bits Equalizer | 贪心法 | 简单思维题 |
习题8-4 | UVA11491 | Erasing and Winning | 贪心法 | 简单思维题 |
习题8-5 | UVA177 | Paper Folding | 构造法 | 思维推理,模拟 |
习题8-6 | UVA1611 | Crane | 构造法 | 中级思维题 |
习题8-7 | UVA11925 | Generating Permutations | 构造法 | 思维题 |
习题8-8 | UVA1612 | Guess | 贪心法 | 细节题 |
习题8-9 | UVA1613 | K-Graph Oddity | 贪心法 | 简单思维题 |
习题8-10 | UVA1614 | Hell on the Markets | 数学结论 | 思维,证明 |
习题8-11 | UVA1615 | Highway | 贪心法 | 区间重合覆盖 |
习题8-13 | UVA10570 | Meeting with Aliens | 枚举法 | 剪枝 |
习题8-12 | UVA1153 | Keep the Customer Satisfied | 贪心法 | 不重叠区间变形 |
习题8-14 | UVA1616 | Caravan Robbers | 二分法 | 精度问题,技巧 |
习题8-15 | UVA1617 | Laptop | 贪心法 | 区间相关问题 |
习题8-16 | UVA1618 | Weak Key | 数据结构 | ST表 |
习题8-17 | UVA11536 | Smallest Sub-Array | 滑动窗口 | 尺取法,简单题 |
习题8-18 | UVA1619 | Feel Good | 扫描法 | 状态传递,细节 |
习题8-19 | UVA1312 | Cricket Field | 思维技巧 | 巧妙枚举 |
习题8-20 | UVA1620 | Lazy Susan | 结论推导 | 数学思维 |
习题8-21 | UVA1621 | Jumping Around | 构造法 | 思维题 |
习题8-22 | UVA1622 | Robot | 构造法 | 思维题 |
习题8-23 | UVA1623 | Enter the Dragon | 贪心法 | 数据结构 |
习题8-24 | UVA10366 | Faucet Flow | 贪心法 | 模拟,细节 |
习题8-25 | UVA11175 | From D to E and back | 思维题 | 简单水题 |
习题8-26 | UVA12559 | Finding [B]lack Circles | 思维题 | 简单水题 |
习题8-27 | UVA1580 | Pirate Chest | 思维题 | 技巧枚举 |
习题8-28 | UVA1624 | Knots | 思维题 | 好题,模拟 |