KMP 自动机

news/2024/10/8 16:33:47/文章来源:https://www.cnblogs.com/g1ove/p/18451912

KMP 自动机

定义状态 \(\texttt{nxt}_{i,j}\) 表示在 \(i\) 接一个字符 \(j\) 的最终匹配位置。

转移是显然的。

\(\texttt{nxt}_{i,j}=\texttt{nxt}_{fail_i,j}\)

注意 KMP 的字符集无关的,而 KMP 自动机依赖字符集大小。

struct Auto{char s[N];int n,nxt[N][26];void init(){n=strlen(s+1);int fail=0;for(int i=1;i<=n;i++){int c=s[i]-'a';fail=nxt[fail][c];nxt[i-1][c]=i;for(int j=0;j<26;j++)nxt[i][j]=nxt[fail][j];}}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/810030.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

打造一站式应用内支付体验,助力开发者商业增长

随着移动互联网的发展,应用内支付已成为数字经济的重要组成部分。用户越来越追求便捷的支付体验,应用内支付服务提供的购买和订阅等能力满足了用户快速、无缝的支付需求,方便用户一站式完成交易,帮助开发者实现收入多元化。 HarmonyOS SDK应用内支付服务(IAP Kit)为用户精…

使用GRUB Multiboot2引导自制操作系统

使用GRUB Multiboot2引导自制操作系统 前言 之前花了一周时间,从头学习了传统 BIOS 的启动流程。惊讶于背后丰富的技术细节的同时,也感叹 x86 架构那厚重的历史包袱。毕竟,谁能想到,一个现代 CPU 竟然需要通过操作“键盘控制器寄存器”来启用一条地址线呢。 最终,出于兼容…

中电金信:源启数据建模平台:建模效率和管理精细度进一步提升

​源启数据建模平台是源启数据资产平台面向数据仓库等大型数据模型构建专门打造的模型设计工具。它以需求牵引模型动态演进,持续变更模型适应业务变化,并以Web和图形化方式,提供正向、逆向建模能力,高效复用模型资产和构建大型数据模型。同时,秉承“建模即治理”的思想,在…

是用python脚本清理reids连接

背景:测试环境的redis不知道咋回事突然无法连接,服务器登录查了一下发现连接数用完了。研发说雨女无瓜,测试环境删了没事,正事要紧赶紧恢复。得嘞!> info clients # Clients connected_clients:9997 # 连接中的数量 client_recent_max_input_buffer:54366 client_rece…

在Cucumber中应用 PicoContainer容器实现组件的实例化

通过 PicoContainer 这个轻量级的DI(Dependency Injection)组件容器进行组件的实例化, 相关介绍参考:http://picocontainer.com/introduction.html step1:定义一个ScenarioContext类 step2:添加jar依赖 implementation io.cucumber:cucumber-picocontainer:7.2.3 step3:…

查看交叉编译器的默认选项

1. 新建C文件mfloat.c#include <stdio.h> int main(void) { double a,b,c;a = 23.5436;b = 323.2348;c = b/a;printf("the result = %f\n", c);printf("hello world !\n");return 0; }2. 是 -v 选项 3. 显示结果如下

Starrocks模型表(一)

主键表优势:支撑实时数据更新的同时,也能保证高效的复杂即席查询性能 主键表中的主键具有唯一非空约束,用于唯一标识数据行,如果新数据的主键值与表中原数据的主键值相同,则存在唯一约束冲突,此时新数据会替代原数据应用场景实时对接事务型数据至StarRocks。事务型数据库…

2024-10-08:用go语言,给定一个字符串 word 和一个整数 k,判断是否可以通过删除最少数量的字符使得该字符串成为 k 特殊字符串。 其中,k 特殊字符串满足字符串中任意两个字符的出现频率

2024-10-08:用go语言,给定一个字符串 word 和一个整数 k,判断是否可以通过删除最少数量的字符使得该字符串成为 k 特殊字符串。 其中,k 特殊字符串满足字符串中任意两个字符的出现频率之差的绝对值均不超过 k。 你可以编写一个算法来计算最少需要删除多少个字符,使得给定的…

IIS 配置跨域_IIS配置Access-Control-Allow-Origin

一、使用IIS 界面操作1、设置Access-Control-Allow-Origin 2、打开IIS,找到“HTTP响应标头”点进去 3、在右侧可以看到添加,然后添加如下标头即可 Access-Control-Allow-Headers:Content-Type, api_key, Authorization Access-Control-Allow-Origin:* 二、修改IIS 配置文件…

extcon驱动及其在USB驱动中的应用

extcon,是External Connector的简称,用于抽象外部连接器,比如说Audio Jack、USB MicroB/TypeC接口等。它的原型是Android的switch-class驱动,经过修改后在kernel 3.4.0版本时被引入内核中。Extcon (external connector): import Androids switch class and modify. Externa…

IIS 配置referer 请求筛选_请求拒绝

一、IIS 配置Referer 拒绝解析: 访问静态内容,拒绝指定的referer,例如:拒绝后,对应的网站引用当前网站的静态资源会被拒绝。更多: iis怎么限制http下载速度_IIS 限制网站带宽使用? IIS 执行此操作时出错。 详细信息:web.config 错误,.net core项目IIS10 隐藏 http serve…

RAG系统评测实践详细版:Coze及相关产品评测对比,以及下一代RAG技术

RAG系统评测实践详细版:Coze及相关产品评测对比,以及下一代RAG技术AI RAG系统评测实践:Coze及相关产品评测对比 RAG(检索增强生成)是一种 AI 框架,它将传统信息检索系统(例如数据库)的优势与生成式大语言模型 (LLM) 的功能结合在一起,通过将这些额外的知识与自己的语言…