短链接及关键字过滤ac自动机设计思路
=============:短链接设计思路:
核心:将长字符转为短字符串并建立映射关系,存储redis中。
1.使用crc32转换为Long
2.hashids将long encode为最短字符串。作为短连接后缀,
==========关键字过滤设计思路:
1.将关键字列表中每个关键字字符转换为字典树,利用ac自动机算法匹配.
--备注:
KMP算法:查找模式串中最长相同的前缀和后缀的最长长度。即next[j]的值,失配索引j-next[j]=移动位数.
字典树:将目标串按字符串起来,相同前缀则共享前缀,不相同,则从root,重新建立。可以用来判断一个串是否是p(模式串)中的前缀:
ac自动机:失配(fail)的指针指向字典树的最长后缀节点,如果没有就找第二长的后缀。如果再没有就指向root. 这样能够线性的去匹配所有的模式串.
短链接及关键字过滤ac自动机设计思路的更多相关文章
- HDU 4758 Walk Through Squares(AC自动机+DP)
		题目链接 难得出一个AC自动机,我还没做到这个题呢...这题思路不难想,小小的状压出一维来,不过,D和R,让我wa死了,AC自动机,还得刷啊... #include<iostream> # ... 
- HDU 2222 Keywords Search(AC自动机模版题)
		Keywords Search Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others ... 
- hdu 2222 Keywords Search    ac自动机模板
		题目链接 先整理一发ac自动机模板.. #include <iostream> #include <vector> #include <cstdio> #inclu ... 
- 【洛谷 P3041】 [USACO12JAN]视频游戏的连击Video Game Combos(AC自动机,dp)
		题目链接 手写一下AC自动机(我可没说我之前不是手写的) Trie上dp,每个点的贡献加上所有是他后缀的串的贡献,也就是这个点到根的fail链的和. #include <cstdio> # ... 
- P3796 【模板】AC自动机(加强版) 题解(Aho-Corasick Automation)
		题目链接 AC自动机 解题思路 AC自动机模板题. 刚学AC自动机,写一篇博客增强理解. AC自动机最关键的一点在于,\(fail\)失配指针的构造. \(fail\)指针指向的地方,是匹配出现错误后 ... 
- 【bzoj3940】[Usaco2015 Feb]Censoring  AC自动机
		题目描述 Farmer John has purchased a subscription to Good Hooveskeeping magazine for his cows, so they h ... 
- (转)两种高效过滤敏感词算法--DFA算法和AC自动机算法
		原文:https://blog.csdn.net/u013421629/article/details/83178970 一道bat面试题:快速替换10亿条标题中的5万个敏感词,有哪些解决思路? 有十 ... 
- 基于Redis的短链接设计思路
		[Markdown阅读][1] 今天上班的时候收到一个需要短链接的需求,之前的做法都是使用了新浪的短链接API(https://api.weibo.com/2/short_url/shorten.js ... 
- 【专题】字符串专题小结(AC自动机 + 后缀自动机)
		AC自动机相关: $fail$树: $fail$树上以最长$border$关系形成父子关系,我们定一个节点对应的串为根到该节点的路径. 对于任意一个非根节点$x$,定$y = fa_{x}$,那$y$ ... 
随机推荐
- 关于No Spring WebApplicationInitializer types detected on classpath的提示,tomcat 卡主
			No Spring WebApplicationInitializer types detected on classpath 下一句:Initializing Spring root WebAppl ... 
- Thawte 企业版代码签名证书
			Thawte企业版代码签名证书 ,严格验证企业身份,如果您是个人开放者,请申请Thawte 个人代码签名证书.Thawte企业代码签名证书 可帮助程序开发者使用微软代码签名工具(Microsoft ... 
- STM32F407 串口通信实验 第26节 个人笔记
			前言 这篇笔记对应正点原子STM32F407探索者 ,教学视频第26节,网址如下: https://ke.qq.com/webcourse/index.html#cid=279403&term ... 
- [luoguP1021] 邮票面值设计(DFS + dp)
			传送门 数据很小,可以DFS,判断的时候用背包DP 然而不知到枚举到哪里.... 首先枚举前可以求一遍题目中的MAX,下一层DFS的时候可以只枚举到MAX + 1,因为再往上就必定会出现断层 蒟蒻很菜 ... 
- 【区间dp+组合数+数学期望】Expression
			https://www.bnuoj.com/v3/contest_show.php?cid=9148#problem/I [题意] 给定n个操作数和n-1个操作符,组成一个数学式子.每次可以选择两个相 ... 
- [bzoj3489]A simple rmq problem_KD-Tree
			A simple rmq problem 题目大意:给定一个长度为$n$的序列,给出$m$个询问:在$[l,r]$之间找到一个在这个区间里只出现过一次的最大的数. 注释:$1\le n\le 10^5 ... 
- easyui webuploader 文件上传演示
			webuploader 上传首页 webuploader 上传前页面 webuploader 上传中页面 图就不上传了,状态会编程上传中 webuploader 已上传页面 
- linux 实现VLAN
			本文将在一台linux机器上,利用linuxbridge 等技术模拟创建VLAN 环境. 首先,创建vlan interface ip link add link ens33 name ens33.8 ... 
- list.ensureCapacity竟然会变慢
			list.ensureCapacity竟然会变慢 jdk1.8 应该是做了优化了: public class Test10 { public static void main(String[] arg ... 
- Ubuntu14.04 忘记rootpassword的解决方法
			对于windows操作系统,假设忘记管理员password,事实上还是蛮好解决的. 最简单的一种方式就是使用PE--电脑店,老毛桃等等,都能够非常完美的解决问题. 假设是Linux操作系统的话.事实上 ... 
