首页 > 其他分享 >后缀相关学习笔记

后缀相关学习笔记

时间:2024-08-28 18:05:20浏览次数:6  
标签:分段 LCP 后缀 text mid 笔记 学习 ht

应用

任意子串 \(\text{LCP}\) 长度

$LCP(i,j) = \min\limits_{k=rk_i+1}^{rk_j} ht_k $

运用此性质,可以有通用套路:\(\text{Height}\) 分段,下面题目会有讲解。

练习题

P2743 [USACO5.1] 乐曲主题Musical Themes

最长不重复多次出现子串。\(\text{Height}\) 分段经典题目。

首先求出原串的 \(\text{Height}\),然后二分答案,check 时可以将 \(ht\) 数组分为若干个极大的 \([l,r]\) 区间,使得区间都满足 $ i \in [l+1,r] , ht_i \geq mid$。这样的话,对于每一个区间内所有后缀的 \(\text{LCP}\) 都是大于等于 \(mid\) 的,这样就只需要对于每一段求出 \(sa\) 数组的 \(\max\) 和 \(\min\),若两者相减大于等于 \(mid\),则不相交。

UVA11107 Life Forms

将所有串用分隔符隔开后拼到一起。

同理也可以二分,然后分段。多处理一个 \(bel\) 数组,表示排名 \(i\) 的后缀来自的原串编号,分段后处理一个桶即可。

标签:分段,LCP,后缀,text,mid,笔记,学习,ht
From: https://www.cnblogs.com/Aurora-Borealis-Not-Found/p/18385145

相关文章

  • prometheus学习笔记之cAdvisor
    一、cAdvisor简介监控Pod指标数据需要使⽤cadvisor,cadvisor由⾕歌开源,cadvisor不仅可以搜集⼀台机器上所有运⾏的容器信息,还提供基础查询界⾯和http接⼝,⽅便其他组件如Prometheus进⾏数据抓取cAdvisor可以对节点机器上的资源及容器进⾏实时监控和性能数据采集,包括CPU使⽤情......
  • CSS (border-radius应用) 笔记 08
      border-radius: n1 n2 n3n4 /a1 a2 a3 a4  【n1-a1,n2-a2,n3-a3,n4-a4 分别表示上右下左顺序边角的椭圆边角,其中n代表水平,a代表垂直】e.g有趣的小水滴动画(应用)<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname=&qu......
  • CSS(样式-定位) 笔记 06
    position:;定位1.static代表静态模式,常态模式2.fixed 代表固定模式特点:不随浏览器的滚动而滚动,释放掉自己原来的空间,参照物是整个浏览器3.absolute代表绝对模式特点:随浏览器的滚动而滚动,释放掉自己原来的空间,参照物是整个浏览器4.relative代表相对位置特点:随浏......
  • 四边形不等式学习笔记
    1.定义1.1四边形不等式四边形不等式指的是二元函数\(w(l,r)\)对于\(l_1\lel_2\ler_1\ler_2\)满足:\[w(l_1,r_1)+w(l_2,r_2)\lew(l_2,r_1)+w(l_1,r_1)\]也就是交叉优于包含。四边形不等式的等价形式是:\[w(l,r-1)+w(l+1,r)\lew(l,r)+w(l+1......
  • Netty 学习笔记
    Java网络编程早期的JavaAPI只支持由本地系统套接字库提供的所谓的阻塞函数,下面的代码展示了一个使用传统JavaAPI的服务器代码的普通示例//创建一个ServerSocket用以监听指定端口上的连接请求ServerSocketserverSocket=newServerSocket(5000);//对accept方法......
  • Java基础-学习笔记15
    15泛型1.泛型泛型的好处编译时,检查添加元素的类型,提高了安全性减少了类型转换的次数,提高效率比如:ArrayListarr=newArrayList();在放入时,如果添加Dog类到arr里,编译器发现添加的类型不满足要求,就会报错;在取出时,直接取出Person类,就不用再转型使用。泛型的......
  • MybatisPlus学习笔记
    MyBatisPlus从入门到精通1.概述MybatisPlus是一款Mybatis增强工具,用于简化开发,提高效率。它在MyBatis的基础上只做增强不做改变,为简化开发、提高效率而生。官网:https://baomidou.com/2.快速入门2.0准备工作①准备数据CREATETABLE`user`(`id`bigint(20)NOTNULL......
  • 深度学习-pytorch-basic-003
    1.环境配置1.1anconda配置环境condacreate-nDL_pytorchpython=3.11condaacticvateDL_pytorchcondadeactivatecondaenvlistcondaremove-nDL_pytorch--all1.2torchCPU环境配置pipinstalltorch==1.10.0-ihttps://pypi.tuna.tsinghua.edu.cn/simplecond......
  • 系统架构师考试学习笔记第二篇——架构设计专业知识(6)系统工程基础知识
    本章节考点分析:        第6课时主要学习系统工程和系统性能等内容。根据考试大纲,本课时知识点会涉及单项选择题,约占2~5分。本课时内容侧重于概念知识也会有计算题。根据以往全国计算机技术与软件专业技术资格(水平)考试的出题规律,考查的知识点多来源于教材,扩展内容较......
  • Spring超硬核笔记———全是干货
    为什么用spring?Spring的核心功能IOC(控制反转,依赖注入),AOP(面向切面的编程)IOC:我们在使用过程中不用关注于对象是怎么创建的,只用应用过去,sping自动帮我们完成注入,对象的创建,spring默认创建对象是单例,这样减少了频繁创建对象,让对象重复利用,所有的对象都是放在BeanFactory工厂......