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模板相关推荐

  1. 【模板】KMP算法、fail树

    ACM模板 目录 KMP字符串 Fail失配树 KMP字符串 肖然大佬视频讲解 子串: 从原串中选取连续的一段,即为子串(包括空串) 前缀: pre(s,k)pre(s,k)pre(s,k) 为 s ...

  2. KMP算法模板与解析

    全部数据结构.算法及应用课内模板请点击:https://blog.csdn.net/weixin_44077863/article/details/101691360 将KMP算法,就要先讲讲它是用来 ...

  3. KMP算法小总结 洛谷P3375 【模板】KMP字符串匹配

    提问:这里有一个长度为n的字符串str1和长度为m的字符串str2(n > = m),问在str1中str2出现了几次? 如果使用暴力求解,一个一个比较,在n和m都极大的情况下将花费非常多的不必 ...

  4. Django模板、配置文件、静态文件及案例实现(创建模板、设置模板查找路径、模板接收视图传入的数据、模板处理数据、BASE_DIR、DEBUG、本地语言与时区、App应用配置)

    1.Django模板 网站如何向客户端返回一个漂亮的页面呢? 漂亮的页面需要html.css.js. 可以把这一堆字段串全都写到视图中, 作为HttpResponse()的参数,响应给客户端. 存在的 ...

  5. C++知识点56——类模板(1、模板类的介绍)

    一.类模板 和函数模板一样,类模板也得通过template关键字来声明和定义,C++标准库中有很多容器都是类模板 示例 template <typename T> class mystac ...

  6. 泛函编程—模板函数_类模板

    函数业务逻辑一样,只是函数参数类型不同 函数模板的本质:类型参数化--泛型编程 语法: template <typename T> template <class T1,class ...

  7. 由浅入深:自己动手开发模板引擎——解释型模板引擎

    受到群里兄弟们的竭力邀请,老陈终于决定来分享一下.NET下的模板引擎开发技术.本系列文章将会带您由浅入深的全面认识模板引擎的概念.设计.分析和实战应用,一步一步的带您开发出完全属于自己的模板引擎.关于 ...

  8. 由浅入深:自己动手开发模板引擎——置换型模板引擎(四)

    受到群里兄弟们的竭力邀请,老陈终于决定来分享一下.NET下的模板引擎开发技术.本系列文章将会带您由浅入深的全面认识模板引擎的概念.设计.分析和实战应用,一步一步的带您开发出完全属于自己的模板引擎.关于 ...

  9. 由浅入深:自己动手开发模板引擎——置换型模板引擎(三)

    受到群里兄弟们的竭力邀请,老陈终于决定来分享一下.NET下的模板引擎开发技术.本系列文章将会带您由浅入深的全面认识模板引擎的概念.设计.分析和实战应用,一步一步的带您开发出完全属于自己的模板引擎.关于 ...

最新文章

  1. python坐标轴刻度为经纬度_python各类经纬度转换
  2. resize函数缩小图片的尺寸 车辆检测
  3. 基于jsp+mysql+Spring+hibernate+的SSH在线学习交流论坛平台
  4. windows快速搭建activity6.0
  5. Windows获取系统版本号
  6. php+oracle新增数据类型,Oracle 修改某个字段的数据类型三种方式
  7. BZOJ1370 [Baltic2003]Gang团伙
  8. 解决 Vue 重复点击相同路由,出现 Uncaught (in promise) NavigationDuplicated: Avoided redundant navigation 问题
  9. java基础------多线程(转)
  10. Toontrack Superior Drummer for Mac - 鼓音乐制作工具
  11. element-UI table自定义表头
  12. ThinkPad E550 Catalina用OC换Clover引导的过程(支持Mac Update)
  13. 软件开发需求分析规范
  14. JAVA相关基础知识
  15. 60帧究级豪华观影体验!potplayer通过bluesky补帧!
  16. JSP程序设计实训(十一)——JSP与Servlet技术(一)
  17. 怎么样用香港主机搭建游戏网站
  18. C语言——关于位段的理解
  19. 基于手机音频通信应用
  20. MFC学习日记五:Mfc文本编程

热门文章

  1. QT操作Excel封装类(包含高级功能:合并单元格,文本及单元格格式设定等)
  2. php中上传图片到mysql数据库中
  3. 裸奔必备:沙盘Sandboxie 4.19.4最新版下载
  4. 家用洗地机哪种好?怎么选购家用洗地机
  5. 遥感图像卫星概述--海洋卫星,资源卫星,商用卫星
  6. Vue中 $attrs、$listeners使用和理解
  7. Linux Command ps 性能分析
  8. 2018-03-24-利用动态二进制加密实现新型一句话木马之Java篇
  9. 神经网络怎样模拟人的思考?
  10. Retrofit下载大文件、监听进度、断点续传