首页 > 其他分享 >Z 函数

Z 函数

时间:2023-02-27 09:22:12浏览次数:24  
标签:匹配段 函数 Manacher leq 考虑 暴力

即 \(\forall i\),求 \(z_i=|\operatorname{lcp}(s,s[i:n])|\)

考虑类似 Manacher,用增量法求解。

考虑对于一个 \(i\),称 \([i,i+z_i-1]\) 为 \(i\) 的匹配段,记为 \([l,r]\),考虑最大的 \(r\) 对应的匹配段

  • \(i>r\),此时直接暴力匹配
  • \(i\leq r\),则 \(s[l:r]=s[1:r-l+1]\),故 \(s[i:r]=s[i-l+1:r-l+1]\),则 \(z_i\geq \min(z_{i-l+1},r-i+1)\),若 \(z_{i-l+1}\leq r-i+1\) 则继续暴力。注意到 \(r\) 只会增加,所以复杂度 \(\mathcal O(n)\)

标签:匹配段,函数,Manacher,leq,考虑,暴力
From: https://www.cnblogs.com/pref-ctrl27/p/17158546.html

相关文章

  • js-惰性函数
    1.需求:我们现在需要写一个foo函数,这个函数返回首次调用时的Date对象,注意是首次。使用场景:当我们每次都需要进行条件判断,其实只需要判断一次,接下来的使用方式都不会发......
  • Python 常用内置函数 肆
    max返回可迭代对象中的最大值语法参数defmax(*args,key=None):#knownspecialcaseofmax"""max(iterable,*[,default=obj,key=func])->value......
  • python绘图函数
    1.plot绘制线型图importmatplotlib.pyplotaspltimportnumpyasnpimportpandasaspdplt.rcParams['font.sans-serif']=['SimHei']plt.rcParams['axes.unicod......
  • MySQL学习笔记-函数
    MySQL-常用函数select{函数}({参数});select是查询用的,用来展示函数返回值。一.字符串函数常用的字符串函数:1.concat拼接selectconcat('Hello','World');......
  • ES6-ES11 函数参数的默认值设置
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><title>函数参......
  • JavaScript 构造函数
    <!DOCTYPEhtml><html> <head> <metacharset="UTF-8"> <title></title> <scripttype="text/javascript"> /* *创建一个构造函数,专门用来创建Person对......
  • JavaScript 立即执行函数
    <!DOCTYPEhtml><html> <head> <metacharset="UTF-8"> <title></title> <scripttype="text/javascript"> //函数对象() /* *立即执行函数 ......
  • 29.分析函数
    1.求和scott@ORCLPDB012023-02-2620:44:09>selectename,sal,(selectsum(sal)fromemp)tsalfromemp;ENAME SAL TSAL------------------------------......
  • 27.报表高级分组函数
    --group函数复习hr@ORCLPDB012023-02-2619:55:19>selectavg(salary),stddev(salary),count(commission_pct),max(hire_date)2fromemployees3wherejob_id......
  • 函数的基本使用
    一、引入基于前一部分的学习,我们已经能够开发一些功能简单的小程序了,但随着程序功能的增多,代码量随之增大,此时仍不加区分地把所有功能的实现代码放到一起,将会使得程序的组......