自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(43)
  • 收藏
  • 关注

转载 Factor Oracle自动机的构造

LINK:http://blog.sina.com.cn/s/blog_628cc2b70100nkq1.htmlOracle自动机的构造" title="Factor Oracle自动机的构造" style="margin:0px; padding:0px; border:0px; list-style:none">下面以字符串"announce"构造自动

2015-10-29 08:50:00 1004

转载 后缀自动机构造过程演示

LINK:http://www.cnblogs.com/GBRgbr/p/3236451.html昨天跟后缀自动机死磕了一下午,也没搞明白怎么回事。今天又把网上找到的资料重新看了一遍,顿时觉得一道大闪电从后脑劈过——好像突然有点明白了orz……不过只能说目前勉强明白了后缀自动机是如何构建的,对于它的很多性质和用法,还有待学习。本人弱菜一只,如有错误,欢迎指正~

2015-10-29 08:49:16 1466

转载 后缀自动机 例题

LINK:http://www.cnblogs.com/Lyush/archive/2013/08/25/3281546.html后缀自动机也是解决字符串问题的常用工具,犀利在O(N)的空间复杂度下存在给定串的后缀以及子串,而且支持在线的操作。POJ-1509 Glass Beads题意:求一个字符串的最小表示的开始下标。分析:其实有一个O(

2015-10-28 09:48:03 602

转载 后缀自动机学习总结

LINK: http://blog.sina.com.cn/s/blog_70811e1a01014dkz.html星期五的时候,在网上看别人的总结看了很久也没有什么收获,不过星期六看了clj原汁原味的论文,终于明白了(网上的总结只写了大致做法,比较难理解).后缀自动机实质上是字母树,记录的字符串是某个字符串s的所有后缀.这里以字符串ACADD为例:

2015-10-28 09:18:05 654

转载 后缀自动机与线性构造后缀树

LINK: http://fanhq666.blog.163.com/blog/static/8194342620123352232937/冬令营上我犯了最大的一个错误,就是在陈立杰讲后缀自动机的时候睡觉。这导致了,我在冬令营之后只能花费好几个不眠之夜来思考后缀自动机到底是什么。突然,在某天的梦里,我看到了一幅神奇的图景,我突然发现,一切都是那么的明晰了。  先说说

2015-10-28 06:44:33 1628

转载 BOM字符串匹配算法

Backward Oracle Matching algorithmLINK :http://igm.univ-mlv.fr/~lecroq/string/bom.htmlTHE C CODEOnly the external transitions of the oracle are stored in link lists (one per state). The

2015-10-27 09:18:52 1956

转载 BNDM字符串匹配算法

打破思维断层之最优美的BNDMLINK: http://wlh0706-163-com.iteye.com/blog/1858230BNDM 目的: 本篇博客以BNDM算法为载体,意图在减少思维断层情况下了解算法思想。 目录:        1:其他算法回顾        2:BNDM算法介绍        3:构建辅助表B

2015-10-25 09:49:33 2109

转载 KMP算法的C语言实现

//******************************************************************************************************************************//             KMP算法的C语言代码实现////核心思想:匹配过程中匹配不等时,不需回溯i指针,而是利用已经得到的“

2015-10-22 14:02:25 1149

转载 关于数组TOP K算法(快排及最小堆方式C代码)

TOP K即返回给定集合最大的K个元素,这个集合有可能很大,十亿,有可能万亿,所以对算法的要求比较高。以下是我的总结:一、采用快速排序的分治算法思想进行求解:快速排序的思想是使用一个标志点将数组分为两个部分,小于该点的数据移动到该点的左侧,大于该点的数据移动到该点的右侧,然后进行递归,最后达到有序。同理我们也可以使用该思想求数组的TOP K。也是使用第一个元素左右标志,小于该点的元

2015-10-22 14:01:33 1243

转载 后缀数组(罗穗骞):笔记

LINK : http://www.cnblogs.com/cssystem/archive/2013/03/08/2950662.html首先吐槽一句:大神就是大神,写的东西我理解了三个月终于沾到边了!进入正题:http://wenku.baidu.com/view/ed1be61e10a6f524ccbf85fd.html建议跟pdf一起看 

2015-10-21 20:46:11 771

转载 后缀数组倍增算法模版

LINK : http://bbezxcy.iteye.com/blog/1403297 首先献上模版 Cpp代码  #include  #include  #include  using namespace std;  const int Max = 20001;    int  num[Max];  int s

2015-10-21 20:45:31 399

转载 后缀数组

LINK : http://www.cppblog.com/MatoNo1/archive/2011/10/23/158926.html【后缀数组真难懂啊啊……就20+行的代码搞了几天才理解……不知是不是我太沙茶了】【1】一些定义:字符串:广义的字符串是指“元素类型有序,且元素值有一定范围的序列”,其元素不一定非要是字符,可以是数字等,因此整数、二进制数等也是字符串;字

2015-10-21 20:44:38 458

转载 《黑书》后缀数组学习笔记.

LINK: http://www.cnblogs.com/ziyi--caolu/archive/2013/06/02/3114448.html最近看黑书看到数据结构之后缀数组了,以前没有搞过后缀数组,初学起来感觉比较难,网上参考了两种后缀数组学习笔记,以及罗穗骞倍增算法代码,这里附上链接:http://tieba.baidu.com/f?kz=754580296h

2015-10-20 16:50:01 585

转载 后缀数组学习笔记——罗穗骞倍增算法代码

LINK: http://www.cnblogs.com/staginner/archive/2012/02/02/2335600.html    一开始看“小罗”写的论文和模板真的云里雾里,理解起来十分困难,后来结合一个百度贴吧里面的学习笔记总算是把倍增算法的代码的意思搞懂了,于是后面自己也写了一份对“小罗”倍增算法代码的注释,希望能对各位正在学习后缀数组的同僚带来一点帮助。

2015-10-17 09:05:05 780

转载 后缀数组——罗穗骞倍增算法详细注释

link: http://blog.csdn.net/wxfwxf328/article/details/7599929#include  const int maxn=100010;    int wa[maxn],wb[maxn],wv[maxn],ws[maxn];  int cmp(int *r,int a,int b,int l)  {

2015-10-16 22:57:41 753

转载 后缀数组

LINK : http://www.nocow.cn/index.php/后缀数组后缀数组是字符串处理的一个重要工具。它由原字符串的所有后缀的字典排序而得,具有较高的检索效率。字符串aaabaaab的所有后缀目录 [隐藏] 1 基本概念2 倍增算法3 线性时间复杂度算法3.1 KS033

2015-10-15 10:51:48 501

转载 后缀数组小结

LINK: http://blog.csdn.net/xymscau/article/details/8798046后缀数组号称字符串处理神器,不过发现好多人都只会用模板,其实这不是我们学算法的本质,我们学习算法的本质应该理解其实现原理,并加以实现,特别是算法,更讲究的是一种思想。一年前的我也是只会用别人的模板,最近却静下心来,研究了一下后缀数组,自己写了一份自己的模板。

2015-10-15 10:51:02 337

转载 后缀数组 DA(倍增)算法求 SA[N] 与 Rank[N] (时间O(NlogN),空间O(N))

LINK: http://www.cnblogs.com/yefeng1627/archive/2013/08/02/3233611.htmlsa[i] : 表示 排在第i位的后缀 起始下标rank[i] : 表示后缀 suffix(i)排在第几height[i] : 表示 sa[i-1] 与 sa[i] 的LCP 值h[i]: 表示 suffix(i)

2015-10-15 10:48:54 468

转载 后缀数组的应用:最长重复(or回文)子串

Link:http://blog.chinaunix.net/uid-26448049-id-3054641.html问题:比如 weksabcdjklabcdll 最长重复字串为"abcd"解析://blog.csdn.net/zdl1016/article/details/4731875后缀数组举例    如下目标字符串: bananas 其长度

2015-10-15 10:47:09 576

转载 《Thinking in Algorithm》12.详解十一种排序算法

本文链接:http://blog.csdn.net/speedme/article/details/23021467排序算法在算法中占着很重要的地位,很多算法的实现都是基于排序算法的(如搜索算法和合并算法)。所以排序算法也是笔试面试中必考内容。但是不管他怎么考,也就是那几种算法,一般不会超出我接下来要讲的这11种,所以只要认真的掌握着11中就足够了。那么是哪11种呢,下

2015-10-14 16:50:35 465

转载 第七章 右左法则----复杂指针解析

原文链接:http://blog.csdn.net/code_crash/article/details/4854965首先看看如下一个声明: int* ( *( *fun )( int* ) )[10]; 这是一个会让初学者感到头晕目眩、感到恐惧的函数指针声明。在熟练掌握C/C++的声明语法之前,不学习一定的规则,想理解好这类复杂声明是比较困难的。 C/C

2015-10-14 15:25:31 342

转载 UNIX SOCKET编程简介

link : http://www.cnitblog.com/tarius.wu/articles/434.html1 . Layered Model of NetworkingSocket 编程的层次模型如下图所示, 最上面是应用层,应用层下面的是 SOCKET API 层,再下面是传输层和网络层…… 实际上, Sockets API 层并不是一个真正定义的网络层次,

2015-10-14 15:18:35 451

转载 C++虚函数及虚函数表解析

声明:本文内容由自互联网资源(见参考资料)、个人的一些 C++ 学习感悟、个人实践整理而成。文章仅以技术学习和交流为目的。如果您发现了文中的错误,或者您有的不同的见解,可以给我留言或者给我发邮件,我们共同探讨。如果您觉得我的文章侵犯到您的权益,请联系我(chinajiezhang@gmail.com),以便我做相应的处理。最后,如需转载,可不必标明出处。但一定要全文转载,保证参考链接的完整

2015-10-14 15:15:54 459

转载 并查集详解 (转)

并查集是我暑假从高手那里学到的一招,觉得真是太精妙的设计了。以前我无法解决的一类问题竟然可以用如此简单高效的方法搞定。不分享出来真是对不起party了。(party:我靠,关我嘛事啊?我跟你很熟么?)来看一个实例,杭电1232畅通工程首先在地图上给你若干个城镇,这些城镇都可以看作点,然后告诉你哪些对城镇之间是有道路直接相连的。最后要解决的是整幅图的连通性问题。比如随意给你两个点

2015-10-14 12:13:03 342

转载 hdu3068之manacher算法+详解

最长回文Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 5158    Accepted Submission(s): 1755Problem Description给出一个只由小写英文字符a,b,c...y

2015-10-13 06:31:15 338

转载 Top K 算法详解

应用场景:        搜索引擎会通过日志文件把用户每次检索使用的所有检索串都记录下来,每个查询串的长度为1-255字节。        假设目前有一千万个记录(这些查询串的重复度比较高,虽然总数是1千万,但如果除去重复后,不超过3百万个。一个查询串的重复度越高,说明查询它的用户越多,也就是越热门。),请你统计最热门的10个查询串,要求使用的内存不能超过1G。必备知识:什

2015-10-12 10:39:23 340

转载 一致性 hash 算法( consistent hashing )

一致性 hash 算法( consistent hashing )张亮consistent hashing 算法早在 1997 年就在论文 Consistent hashing and random trees中被提出,目前在 cache 系统中应用越来越广泛;1 基本场景比如你有 N 个 cache 服务器(后面简称 cache ),那么如何将一个对象 objec

2015-10-10 16:00:39 441

转载 Hash算法冲突解决方法分析

看了ConcurrentHashMap的实现, 使用的是拉链法.虽然我们不希望发生冲突,但实际上发生冲突的可能性仍是存在的。当关键字值域远大于哈希表的长度,而且事先并不知道关键字的具体取值时。冲突就难免会发 生。另外,当关键字的实际取值大于哈希表的长度时,而且表中已装满了记录,如果插入一个新记录,不仅发生冲突,而且还会发生溢出。因此,处理冲突和溢出是 哈希技术中的两个重要问题。1、

2015-10-10 16:00:17 444

转载 海量数据前N大

最大堆即大根堆 -- 求前n小最小堆即小根堆 -- 求前n大比如求前n小,对于当前元素,和最大堆的堆顶元素(即堆最大值)比较,如果小于堆顶元素,则替换堆顶元素,并调整堆。这样扫描一遍就可以得到最小的n个元素,效率非常高。 问题实例:100w个数中找最大的前100个数 1 INT_MIN初始化最小堆2 读入一个数,如果大于堆顶元素,则替

2015-10-10 15:58:14 359

转载 字符串哈希到整数函数,算法

基本概念所谓完美哈希函数,就是指没有冲突的哈希函数,即对任意的 key1 != key2 有h(key1) != h(key2)。设定义域为X,值域为Y, n=|X|,m=|Y|,那么肯定有m>=n,如果对于不同的key1,key2属于X,有h(key1)!=h(key2),那么称h为完美哈希函数,当m=n时,h称为最小完美哈希函数(这个时候就是一一映射了)。在处理大规模字符串数据

2015-10-10 15:57:55 843

转载 字符串匹配算法之SimHash算法

SimHash算法  由于实验室和互联网基本没啥关系,也就从来没有关注过数据挖掘相关的东西。在实际工作中,第一次接触到匹配和聚类等工作,虽然用一些简单的匹配算法可以做小数据的聚类,但数据量达到一定的时候就束手无策了。  所以,趁着周末把这方面的东西看了看,做个笔记。来历  google的论文“detecting near-duplicates for web

2015-10-10 15:39:01 596

转载 暴雪公司关于字符串匹配的hash算法

本文转自 http://blog.csdn.net/shanzhizi/article/details/7736526暴雪公司有个经典的字符串的hash公式      先提一个简单的问题,假如有一个庞大的字符串数组,然后给你一个单独的字符串,让你从这个数组中查找是否有这个字符串并找到它,你会怎么做? 有一个方法最简单,老老实实从头查到尾,一个一个比较,直到找到为止,我想只要

2015-10-10 15:38:39 359

转载 Hash Table哈希表和Hash List哈希链表的知识汇总

本文分为三个部分:一 Hash Table概论二 Linux源代码中的Hash List三 Linux源代码中的Hash Table一 Hash Table概论字符串的算法一般大公司都会考到,我们首先要想到高效的hash。如百度查找一组字符串是否出现在某个文本中,这个不是考什么kmp,他们想听到的是hash。趋势科技考的是从某个文本中删除一组字符串,我想也是要hash吧。

2015-10-10 15:24:34 1227

转载 优先队列三大利器——二项堆、斐波那契堆、Pairing 堆

原文链接: http://dsqiu.iteye.com/blog/1714961优先队列三大利器——二项堆、斐波那契堆、Pairing 堆 本文内容框架:写在前面的话二项堆二项堆的定义,操作,实现斐波那契堆斐波那契堆的定义,操作,实现Pairing堆Pairing 堆的定义,操作,实现

2015-10-08 16:26:31 1041

转载 高级数据结构

内容简介编辑高级数据结构林厚从主编的《高级数据结构》在基本数据结构的基础上,围绕一些常用的高级数据结构,结合大量实战例题,深入分析“数据结构是如何服务于算法的”。本书主要内容包括:哈希表、树与二叉树、优先队列与堆、并查集、线段树、树状数组、伸展树、Treap、AVL树、红—黑树、SBT、块状链表与块状树、后缀树与后缀数组、树链剖分与动态树等。  《高级数据结构》的适用对象包括:中学信息

2015-10-08 16:25:46 1480

转载 后缀数组两种算法的分析比较

【摘要】  后缀数组是处理字符串的有力工具。后缀数组是后缀树的一个非常精巧的替代品,它比后缀树容易编程实现,能够实现后缀树的很多功能而时间复杂度也并不逊色,而且它比后缀树所占用的内存空间小很多。可以说,在信息学竞赛中后缀数组比后缀树要更为实用。本文分两部分。第一部分介绍两种构造后缀数组的方法,重点介绍如何用简洁高效的代码实现,并对两种算法进行了比较。第二部分介绍后缀数组在各种类型题目中的具体应

2015-10-08 12:59:35 2445 1

转载 字符串:KMP Eentend-Kmp 自动机 trie图 trie树 后缀树 后缀数组

涉及到字符串的问题,无外乎这样一些算法和数据结构:自动机 KMP算法 Extend-KMP 后缀树 后缀数组 trie树 trie图及其应用。当然这些都是比较高级的数据结构和算法,而这里面最常用和最熟悉的大概是kmp,即使如此还是有相当一部分人也不理解kmp,更别说其他的了。当然一般的字符串问题中,我们只要用简单的暴力算法就可以解决了,然后如果暴力效率太低,就用个hash。当然hash也是一个面试

2015-10-08 12:58:34 387

转载 《C++ Primer plus》学习笔记之”RTTI”

1. 运行阶段类型识别(RTTI)RTTI是运行阶段类型识别的简称,它为程序在运行阶段确定对象的类型提供了一种标准方式。组要注意的是,他们只适用于包含虚函数的对象。RTTI主要包含三个元素:dynamic_cast,typeid和typeinfo(1) dynamic_cast该操作符将使用一个指向基类的指针来生成一个派生类的指针;如果生成失败,则返回0—空

2015-10-08 10:05:57 401

转载 数据结构之Treap

1. 概述同splay tree一样,treap也是一个平衡二叉树,不过Treap会记录一个额外的数据,即优先级。Treap在以关键码构成二叉搜索树的同时,还按优先级来满足堆的性质。因而,Treap=tree+heap。这里需要注意的是,Treap并不是二叉堆,二叉堆必须是完全二叉树,而Treap可以并不一定是。2. Treap基本操作为了使Treap 中的节点同时

2015-10-08 10:04:53 449

转载 数据结构之线段树

1、概述线段树,也叫区间树,是一个完全二叉树,它在各个节点保存一条线段(即“子数组”),因而常用于解决数列维护问题,它基本能保证每个操作的复杂度为O(lgN)。2、线段树基本操作线段树的基本操作主要包括构造线段树,区间查询和区间修改。(1)    线段树构造首先介绍构造线段树的方法:让根节点表示区间[0,N-1],即所有N个数所组成的一个区间,然后,

2015-10-08 10:04:03 348

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除