左(7)--kmp,manacher,morris

news2024/11/19 9:28:29

前言

仅记录学习笔记,如有错误欢迎指正。

题目:

在这里插入图片描述
思路:实现1个函数infect(),把1连接的位置都变为2,此时算一个岛。
在这里插入图片描述
在这里插入图片描述

如何设计一个并行算法解决这个问题?

在多个cpu中 每次存入分界线的信息,如果每次分界的位置可以和另外的边界凑成一个,每个cpu的岛size–;

并查集的概念:

1.提供一个isSameSet(a,b) —判断两个集合是否在同一个集合,找他们的父节点
2.提供一个union(a,b)— 把a,b集合合并,size小的集合挂在size大的集合下,size相加
3.findHead(v)—做了优化,找到该节点的父节点后,把其他节点都直接指向父节点(扁平化,方便下次查询–o(1))
当findHead调用次数接近n或者超过n,复杂度就是0(1)
类似于图的结构,

在这里插入图片描述
在这里插入图片描述

KMP:

next数组表示为:在i位置之前,前缀和后缀相等的最长的长度。
时间复杂度O(N)
在这里插入图片描述
在这里插入图片描述

Manacher算法:

返回最长回文子串

思路:

r指的是回文的最大右边界位置
i是当前字符所在位置
pArr表示i位置的回文半径的数据
情况1:i > r 超出最大右边界,r++,i++;
情况2:i < r
2.1:i在r内 pArr = i的回文半径
2.2:i在r外 pArr = r-i
2.3:i在r边界 pArr = r-i

预处理:
在这里插入图片描述

for里面第一行代码指的是:
所有情况里最小不用验证的区域;i>r 本身就是回文;i<R,要么是r-i,要么是i‘的位置
while循环指的是:在不用验证的区域外,所有情况都试着往外扩,为了代码简洁。
返回max-1是因为 有’#'预处理

在这里插入图片描述

morris遍历:
感觉用不上啊。。
可见:
https://blog.csdn.net/Borslav/article/details/125680121

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

拓扑排序与关键路径

一、拓扑排序 1.1 什么是拓扑排序 对一个有向无环图(Directed Acyclic Graph简称DAG)G进行拓扑排序&#xff0c;是将G中所有顶点排成一个线性序列&#xff0c;使得图中任意一对顶点u和v&#xff0c;若边<u,v>∈E(G)&#xff0c;则u在线性序列中出现在v之前。通常&#x…

入驻淘宝成人用品店铺要什么证件?

在淘宝店铺开一家淘宝店铺&#xff0c;必须要有成人用品特种经营许可证&#xff0c;没有申请成人用品特种经营许可证的店铺&#xff0c;在淘宝上是发布不了成人用品类目宝贝的&#xff0c;那么&#xff0c;有的店主就有疑问了&#xff1a;成人用品特种经营许可证要在哪里去申请…

基于Spring Boot+Vue+MySQL的理财平台的设计与实现

目 录 摘 要 I Abstract II 目 录 III 图清单 V 表清单 VII 1 绪论 1 1.1 理财平台的现状与发展 1 1.2吾爱理财平台的研究内容 2 1.3 吾爱理财平台的研究目的和意义 2 1.4 本章小结 3 2 本吾爱理财平台的分析 4 2.1 可行性分析 4 2.2 需求分析 4 2.3 框架介绍 6 2.4 本章小结 …

商用、无版权图片素材网站,赶紧马住。

很多朋友不知道去哪里找图片素材&#xff0c;网上找的质量不高先不说&#xff0c;就怕使用不当造成侵权。今天给大家分享6个可商用&#xff0c;还高质量的图片素材网站。1、菜鸟图库 https://www.sucai999.com/pic.html?vNTYwNDUx菜鸟图库网站素材类型很多&#xff0c;像设计、…

【Python游戏】Python实现一个植物大战僵尸小游戏,非常简单,可以用于做毕业设计哟 | 附源码

前言 halo&#xff0c;包子们下午好 今天给打击整一个植物大战僵尸 无广告版本 哈哈 说实话&#xff0c;现在的小游戏很多都是有广告&#xff0c;多少有点难受 今天给大家直接安排 相关文件 关注小编&#xff0c;私信小编领取哟&#xff01; 当然别忘了一件三连哟~~ 源码点…

一篇博客总结深度学习与反向传播

目录 深度学习的发展过程 深度学习的步骤 定义Neural NetWork 全前向连接 softmax介绍 定义loss函数 定义优化器选择最优参数optimization 反向传播Backpropagation 深度学习介绍 反向传播视频 深度学习的发展过程 perceptron(liner model)感知机——线性模型 perc…

知识图谱-KGE-语义匹配-双线性模型-2018:CP

【paper】 Canonical Tensor Decomposition for Knowledge Base Completion【简介】 这篇是 Facebook 法国巴黎 AI 研究中心发表在 ICML 2018 上的文章&#xff0c;是对传统的张量分解方法 CP&#xff08;Canonical Tensor Decomposition&#xff09;做的分析改进。对传统的几个…

泛微文书定确保电子档案移交接收过程:真实、完整、可用和安全

电子档案的移交接收是电子档案管理流程的重要环节之一。 国家档案局发布的《电子档案移交接收操作规程》中明确了电子档案移交接收的工作流程&#xff0c;规定了电子档案移交接收准备工作和电子档案移交接收操作的要求。 在移交接收过程中&#xff0c;如何快速处理大量的电子…

当软件测试迭代测试时间不够时该如何去做好质量控制呢?

大家好&#xff0c;今天我们一起来聊聊&#xff0c;当我们在工作中尤其是快速迭代版本中测试版本的时间被压缩的很短&#xff0c;甚至不够完成用例执行时怎么去做好质量控制呢&#xff1f; 在我们的日常生活中导致软件测试时间不够的原因有很多&#xff0c;那么在这些不确定的人…

客快物流大数据项目(九十二):ClickHouse的MergeTree系列引擎介绍和MergeTree深入了解

文章目录 ClickHouse的MergeTree系列引擎介绍和MergeTree深入了解 一、MergeTree系列引擎介绍 二、​​​​​​​MergeTree深入了解 1、创建MergeTree表的说明 2、创建MergeTree引擎的表 3、删除MergeTree引擎的表 ClickHouse的MergeTree系列引擎介绍和MergeTree深入了解…

【数据库数据恢复】MySQL数据库误删除未备份的数据恢复案例

MySQL数据库属于关系型数据库。SQL是一种用于操作关系型数据库的结构化语言。关系型数据库就是指在关系模型的基础上建立起来的数据库&#xff0c;是一种借助了集合代数等一些数学方法和数学概念处理数据的数据库。 MySQL数据库具有体积小&#xff0c;速度快&#xff0c;性价比…

【QT开发笔记-基础篇】| 第五章 绘图QPainter | 5.2 界面布局

本节对应的视频讲解&#xff1a;B_站_视_频 https://www.bilibili.com/video/BV1fR4y1k7Kt 上节课&#xff0c;初步展示了本章要实现的效果。本节课开始&#xff0c;就从零新建工程&#xff0c;把效果一一实现 首先先把界面搭建起来&#xff0c;也就是把用到的 Label、ComboB…

R语言实现向量自回归VAR模型

澳大利亚在2008 - 2009年全球金融危机期间发生了这种情况。政府发布了一揽子刺激计划&#xff0c;其中包括2008年12月的现金支付&#xff0c;恰逢圣诞节支出。因此&#xff0c;零售商报告销售强劲&#xff0c;经济受到刺激&#xff0c;收入增加了。 最近我们被客户要求撰写关于…

[附源码]计算机毕业设计JAVA整形美容咨询网站

[附源码]计算机毕业设计JAVA整形美容咨询网站 项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybati…

企业为什么要做知识管理?如何进行知识管理?

今天将和大家聊一聊如何通过5大步骤&#xff0c;帮助企业进行知识管理与知识沉淀。 近年来&#xff0c;随着建设的深入&#xff0c;IT不仅成为企业运营的基础&#xff0c;而且在ERP、CRM、OA等信息系统内沉淀的大量知识成为了企业创新的知识源泉&#xff0c;于是知识管理逐渐提…

第十四届蓝桥杯集训——JavaC组第一篇——Eclipse的使用

Eclipse是一个非常经典的开发工具&#xff0c;我们小时候使用的就是这个工具&#xff0c;转眼就这么多年了&#xff0c;依然还在使用&#xff0c;说明这个软件的健壮性还是非常强的。 本博客讲解Eclipse这个IDE的使用&#xff1a; 目录 Eclipse的基础使用 1、常用菜单中英…

C语言有必要学的很深入细致吗?

c语言作为一门高级语言来说&#xff0c;它本身的知识点是很少的&#xff0c;很容易掌握&#xff0c;它没有诸如『类&#xff0c;接口&#xff0c;继承&#xff0c;多态&#xff0c;分派&#xff0c;模板』等等唬人的概念&#xff0c;当然不是说你不能通过c实现这些概念而是这个…

【R语言】计算信息份额模型 - Computes information share component share weights

INTRO 最近又重新开始做一些价格发现相关的研究&#xff0c;目前针对不同市场的同种标的之间价格发现作用的度量&#xff0c;大多采用Hasbrouk&#xff08;1995&#xff09;开发的基于VECM的信息份额模型&#xff0c;通过计算IS指标和CS指标来度量信息份额和价格发现的贡献程度…

【MySQL自学之路】第2天——关系代数计算【理论知识】

目录 前言 基础名词 关系 候选码 关系运算 传统的集合计算&#xff08;二目运算&#xff09; 样例表创建【SQL】 专门的关系运算 后记 销毁已经创建的表 前言 在上一节我们提到了关系型数据库和非关系型数据库之间的关系&#xff0c;我们主要以MySQL关系型数据库为主…

11月更新 | Visual Studio Code Python

我们很高兴地宣布&#xff0c;2022年11月发布的适用于 Visual Studio Code Python 和 Jupyter 扩展现已推出&#xff01; 此版本包括以下改进&#xff1a; 迁移 isort 扩展 Pylance 默认关闭自动导入 Pylint 和 flake8 扩展 用于笔记本单元调试的“Just My Code” 如果您有…