《算法竞赛入门经典——训练指南》实用数据结构

基础数据结构

例题

例题1 UVa11995    AC I Can Guess the Data Structure! ADT  题解
例题2 UVa11991    AC Easy Problem from Rujia Liu 排序或者善用STL  题解
例题3 LA3135      AC Argus 优先队列;模拟    题解
例题4 UVa11997   AC K Smallest Sums 优先队列;有序表合并 题解
例题5 LA3644      AC X-Plosives

并查集                        题解

例题6 LA3027     AC Corporative Network 加权并查集                 题解

习题

UVa11988      AC Broken Keyboard (a.k.a. Beiju Text) 模拟;链表               题解
UVa11645 Hoax or what 最大-最小堆或者STL的set
LA4487 Exclusive-OR 加权并查集
UVa11987 Almost Union-Find

并查集;需要一点技

LA5908 Tracking RFIDs 规模不大,不用高级数据结构
LA3977 Summits 用数据结构加速算法
LA3634 The SetStack Computer 模拟;数据结构


区间信息维护

例题

例题7 LA4329      AC Ping pong Fenwick树;类似逆序对  题解
例题8 UVa11235  AC Frequent Values RMQ         题解
例题9 LA3938      AC Ray, pass me the dishes 线段树;区间查询  题解
例题10 UVa11992  AC Fast Matrix Operations 线段树;区间修改;懒标记传递   题解  

习题

LA2191 Potentiometers      AC Fenwick树                   题解
LA5902 Movie collection    AC Fenwick树                   题解
UVa12299 RMQ with shifts     AC 线段树;单点修改,区间查询  题解
LA4108 Skyline 线段树
UVa11525 Permutations 递推;线段树(或二分+Fenwick树)
LA4730 Kingdom 并查集;线段树
LA5694 Adding New Machine 线段树;组合计数
LA5698 Draw a Mess 线段树可以做,但并查集更好
LA4013 A Sequence of Numbers 转化为区间问题;预处理
LA5915 Flights

字符串算法

例题

例题11 LA3942 Remember the Word 用Trie加速动态规划
例题12 UVa11732 strcmp() Anyone? Trie的性质
例题13 LA3026 Period KMP算法的失配函数
例题14 LA4670 Dominating Patterns AC自动机
例题15 UVa11468 Substring AC自动机上的算法
例题16 UVa11019 Matrix Matcher 二维匹配;AC自动机
例题17 UVa11107 Life Forms 后缀数组+height数组
例题18 LA4513 Stammering Aliens LCP;hash函数

习题

UVa11488 Hyper Prefix Sets Trie的应用
LA5913 Dictionary Size 前缀;后缀;字符串集合
LA3703 Billing Tables Trie的应用
LA2755 Hidden Password 求字符串的最小表示
LA3907 Puzzle 给s个禁止子串,求不含它们的最长串
LA4126 Password Suspects 字符串的动态规划
UVa10829 L-Gap Substrings 后缀数组
LA3490 Generator 自动机;数学期望;数学推导
LA4769 Fuzzy Google Suggest 模糊查找
LA4975 Casting Spells 有难度;需要配合其他数据结构
LA5766 GRE Words 用串算法加速动态规划
LA4619 Accountant notes AC自动机的应用。有难度

排序二叉树

例题

例题19 UVa11020 Efficient Solutions 维护点集;单调性
例题20 LA5031 Graph and Queries 名次树;并查集;时光倒流
例题21 UVa11922 Permutation Transformer 伸展树;和分裂合并的序列
例题22 UVa11996 Jewel Magic 字符串;Hash函数;伸展树

习题

LA4847 Binary Search Tree 和BST有关的计数问题
LA5705 Very Boring Homework BST快速模拟;递归。注意栈溢出
LA3525 Wild West 扫描法;维护点集;单调性(或线段树)
LA3961 Robotic Sorting 伸展树
LA4976 Defense Line 维护点集;单调性
UVa12419 Heap Manager
算法竞赛入门经典——训练指南》代码仓库 例题代码 限于篇幅,书上并没有给出所有例题的代码,这里给出了所有例题的代码,并且改进了书上的一些代码。 第一章 32题 38份代码 第二章 28题 30份代码 第三章 22题 23份代码 第四章 19题 21份代码 第五章 34题 39份代码 第六章 24题 26份代码 共159题 177份代码 为了最大限度保证代码风格的一致性,所有例题代码均由刘汝佳用C++语言编写。 所有代码均通过了UVa/La的测试,但不能保证程序是正确的(比如数据可能不够强),有疑问请致信rujia.liu@gmail.com,或在googlecode中提出: http://code.google.com/p/aoapc-book/ [最新更新] 2013-04-23 增加字符串中例题10(UVa11992 Fast Matrix Operations)的另一个版本的程序,执行效率较低,但更具一般性,可读性也更好 2013-04-22 增加字符串部分“简易搜索引擎”代码,可提交到UVa10679 2013-04-13 修正Treap中优先级比较的bug(原来的代码实际上是在比较指针的大小!),加入纯名次树代码 2013-03-31 修正UVa1549标程的bug,即buf数组不够大。 增加线段树部分“动态范围最小值”的完整代码 2013-03-23 修正UVa10054标程的bug,即没有判断是否每个点的度数均为偶数。UVa数据已经更新 LA3401修正了代码和文字不一致的问题 UVa11270增加了答案缓存 2013-03-21 增加线段树部分中两个经典问题的完整代码:快速序列操作I和快速序列操作II 2013-02-28 补全所有159道例题的代码
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值