【模板】Trie KMP ACAM模板
Trie KMP ACAM模板
虽然实际情况这个都得改
Trie
01Trie也差不多。
const int MAXN = 1e6 + 10, SIZE = 26;
struct Trie{int child[MAXN][SIZE], end[MAXN]. tot;void clear() {tot = 0;memset(child, 0, sizeof(child));memset(end, 0, sizeof(end));}void insert(const string &s) {int now = 0;for (auto x : s) {int cl = x - 'a';if (!child[now][cl])child[now][cl] = ++ tot;now = child[now][cl];}++ end[now];}
};
KMP
KMP的next数组
int nex[MAXN];
chat str[MAXN]; // 从1开始
void getnex() {int k = nex[0] = nex[1] = 0;for (int i = 2; str[i]; ++ i) {while (k && str[k + 1] != str[k])k = nex[k];if (str[k + 1] == str[i])k ++;nex[i] = k;}
}
ACAM
fail的建立
struct ACAM {int child[MAXN][SIZE], end[MAXN], fail[MAXN]. tot;void clear() {tot = 0;memset(child, 0, sizeof(child));memset(fail, 0, sizeof(fail));memset(end, 0, sizeof(end));}void insert(const string &s) {int now = 0;for (auto x : s) {int cl = x - 'a';if (!child[now][cl])child[now][cl] = ++ tot;now = child[now][cl];}++ end[now];}void build() {queue<int>q;for (int i = 0; i < SIZE; ++ i)if (child[0][i])q.push(child[0][i]);while (!q.empty()) {int now = q.front();q.pop();for (int i = 0; i < SIZE; ++ i) {if (child[now][i]) {fail[child[now][i]] = child[fail[now]][i];q.push(child[now][i]);} else {child[now][i] = child[fail[now]][i];}}}}
};
【模板】Trie KMP ACAM模板相关推荐
- 【模板】KMP算法、fail树
ACM模板 目录 KMP字符串 Fail失配树 KMP字符串 肖然大佬视频讲解 子串: 从原串中选取连续的一段,即为子串(包括空串) 前缀: pre(s,k)pre(s,k)pre(s,k) 为 s ...
- KMP算法模板与解析
全部数据结构.算法及应用课内模板请点击:https://blog.csdn.net/weixin_44077863/article/details/101691360 将KMP算法,就要先讲讲它是用来 ...
- KMP算法小总结 洛谷P3375 【模板】KMP字符串匹配
提问:这里有一个长度为n的字符串str1和长度为m的字符串str2(n > = m),问在str1中str2出现了几次? 如果使用暴力求解,一个一个比较,在n和m都极大的情况下将花费非常多的不必 ...
- Django模板、配置文件、静态文件及案例实现(创建模板、设置模板查找路径、模板接收视图传入的数据、模板处理数据、BASE_DIR、DEBUG、本地语言与时区、App应用配置)
1.Django模板 网站如何向客户端返回一个漂亮的页面呢? 漂亮的页面需要html.css.js. 可以把这一堆字段串全都写到视图中, 作为HttpResponse()的参数,响应给客户端. 存在的 ...
- C++知识点56——类模板(1、模板类的介绍)
一.类模板 和函数模板一样,类模板也得通过template关键字来声明和定义,C++标准库中有很多容器都是类模板 示例 template <typename T> class mystac ...
- 泛函编程—模板函数_类模板
函数业务逻辑一样,只是函数参数类型不同 函数模板的本质:类型参数化--泛型编程 语法: template <typename T> template <class T1,class ...
- 由浅入深:自己动手开发模板引擎——解释型模板引擎
受到群里兄弟们的竭力邀请,老陈终于决定来分享一下.NET下的模板引擎开发技术.本系列文章将会带您由浅入深的全面认识模板引擎的概念.设计.分析和实战应用,一步一步的带您开发出完全属于自己的模板引擎.关于 ...
- 由浅入深:自己动手开发模板引擎——置换型模板引擎(四)
受到群里兄弟们的竭力邀请,老陈终于决定来分享一下.NET下的模板引擎开发技术.本系列文章将会带您由浅入深的全面认识模板引擎的概念.设计.分析和实战应用,一步一步的带您开发出完全属于自己的模板引擎.关于 ...
- 由浅入深:自己动手开发模板引擎——置换型模板引擎(三)
受到群里兄弟们的竭力邀请,老陈终于决定来分享一下.NET下的模板引擎开发技术.本系列文章将会带您由浅入深的全面认识模板引擎的概念.设计.分析和实战应用,一步一步的带您开发出完全属于自己的模板引擎.关于 ...
最新文章
- python坐标轴刻度为经纬度_python各类经纬度转换
- resize函数缩小图片的尺寸 车辆检测
- 基于jsp+mysql+Spring+hibernate+的SSH在线学习交流论坛平台
- windows快速搭建activity6.0
- Windows获取系统版本号
- php+oracle新增数据类型,Oracle 修改某个字段的数据类型三种方式
- BZOJ1370 [Baltic2003]Gang团伙
- 解决 Vue 重复点击相同路由,出现 Uncaught (in promise) NavigationDuplicated: Avoided redundant navigation 问题
- java基础------多线程(转)
- Toontrack Superior Drummer for Mac - 鼓音乐制作工具
- element-UI table自定义表头
- ThinkPad E550 Catalina用OC换Clover引导的过程(支持Mac Update)
- 软件开发需求分析规范
- JAVA相关基础知识
- 60帧究级豪华观影体验!potplayer通过bluesky补帧!
- JSP程序设计实训(十一)——JSP与Servlet技术(一)
- 怎么样用香港主机搭建游戏网站
- C语言——关于位段的理解
- 基于手机音频通信应用
- MFC学习日记五:Mfc文本编程