数据结构
文章平均质量分 66
Helios_nannan
得失成败,都只对自己交代
展开
-
hdu 5687 Problem C 字典树
传送门:hdu 5687 Problem C 中文题目就不做过多的解释解题思路定义一个结构体,里面有26个字母,就像下面这样:struct Node{ int next[26]; int sum; void init() { sum = 0; memset(next,-1,sizeof next); }};然后定义一个这个类原创 2016-07-26 22:36:39 · 703 阅读 · 0 评论 -
并查集压缩路径
1.引入什么是并查集?导引问题:【犯罪团伙】 警察抓到了n个罪犯,警察根据经验知道他们属于不同的犯罪团伙,却不能判断有多少个团伙,但通过警察的审讯,知道其中的一些罪犯之间相互认识,已知同一犯罪团伙的成员之间直接或间接认识。有可能一个犯罪团伙只有一个人。 请你根据已知罪犯之间的关系,确定犯罪团伙的数量。已知罪犯的编号从1至n。输入:转载 2015-12-08 21:06:29 · 1427 阅读 · 0 评论 -
串的模式匹配算法---RK
这一节介绍一下由Rabin和Karp提出的RK算法。1,RK算法的基本思想 HASH! 如果两个字符串hash后的值不相同,则它们肯定不相同;如果它们hash后的值相同,它们不一定相同。 RK算法的基本思想就是:将模式串P的hash值跟主串S中的每一个长度为|P|的子串的hash值比较。如果不同,则它们肯定不相等;如果相同,则再诸位比较之。转载 2015-12-23 09:47:45 · 1312 阅读 · 0 评论 -
Rabin-Karp字符串查找算法
简介 暴力字符串匹配是字符串匹配算法中最基本的一种,它确实有自己的优点,比如它并不需要对文本(text)或模式串(pattern)进行预处理。然而它最大的问题就是运行速度太慢,所以在很多场合下暴力字符串匹配算法并不是那么有用。我们需要一些更快的方法来完成模式匹配的工作,然而在此之前,我们还是回头再看一遍暴力匹配,以便更好的理解其他字符串匹配算法。 如下图所示,在暴力字符串匹配里转载 2015-12-21 16:02:47 · 2380 阅读 · 2 评论 -
最小生成树Prim算法理解
MST(Minimum Spanning Tree,最小生成树)问题有两种通用的解法,Prim算法就是其中之一,它是从点的方面考虑构建一颗MST,大致思想是:设图G顶点集合为U,首先任意选择图G中的一点作为起始点a,将该点加入集合V,再从集合U-V中找到另一点b使得点b到V中任意一点的权值最小,此时将b点也加入集合V;以此类推,现在的集合V={a,b},再从集合U-V中找到另一点c使得点c到V中任转载 2015-12-01 20:09:12 · 1355 阅读 · 0 评论 -
c语言数据结构实现后缀表达式求值
通常人在书写的时候习惯是书写中缀表达式,然而在计算机处理的时候中缀表达式的效率远小于后缀表达式,即操作数在前面,运算符在后面例如:中缀表达式 A+B 后缀表达式AB+ A+B*C ABC*+ A*B+C*D AB*CD*+原创 2015-11-29 12:35:53 · 30877 阅读 · 7 评论 -
Find MaxXorSum 经典字典树求异或最大值
传送门:Find MaxXorSum题目大意给出n个数,求在这n个数中取两个数使得他们异或最大解题思路非常经典利用字典树求异或的最大值。 读懂这个题目之后,对于初学者我们可能会思考下面的问题: 1. 两层循环o(n^2)肯定能求出了,但是肯定会超时 2. 这道题怎么做呢? 3. 思考一阵(在不知道用什么算法的情况下),会不会用把每个数转换为二进制,然后按位进行比对 4. 就算转换为二进制原创 2016-07-21 19:26:43 · 4514 阅读 · 1 评论