首页 > 其他分享 >反正这个博客已经废弃了,那么随便发电也没事的吧

反正这个博客已经废弃了,那么随便发电也没事的吧

时间:2024-04-09 22:23:00浏览次数:15  
标签:子串 LCS lcp int 没事 博客 后缀 len 废弃

随便写写!!!!!!!!!!!!

假设读者已经知道 \(SA\) 和 \(height\) 数组。定义 \(lcp(i, j)\) 为字符串以 \(i\) 为起点的后缀和以 \(j\) 为起点的后缀的最长公共前缀。

int lcp(int i, int j) {
	int l = rnk[i], r = rnk[j];
	if (l > r) swap(l, r);
	l++;
	int len = lg[r - l + 1];
	return min(f[l][len], f[r - (1 << len) + 1][len]);
}

最小表示法

设字符串 \(S\) 长度为 \(n\)。把 \(S\) 复制一份得到 \(S + S\),求出 \(SA\) 数组,第一个 \(\leq n\) 的位置就是开始的编号。\(\leq n\) 是为了保证合法。

子串查询

给出 \(T\),在线在 \(T\) 中找 \(S\)。

子串是后缀的前缀。

那么求后缀数组,就是找以 \(S\) 开头的前缀。而且都以 \(S\) 开头,会排在一起,二分一波就可以找到出现位置 & 出现次数了。

处理连续的若干个相同子串

基本就是枚举这个子串的长度,然后根据相邻间隔的 LCP 和 LCS 计算贡献。LCS 可以把原串倒过来求 LCP。

如求重复次数最多的连续重复子串。比如针对 abbabaabaabab,枚举子串长度,到 \(3\) 的时候,假设相邻两点为 \(l = 4, r = 7\)。算 LCP:abaabaabababaabab,可以算到 abaaba,即两倍的子串;算 LCS:abbaaababba,可以算到 a。感性理解就是分别统计了两边。这里的话,答案就是 \(\max \{ \dfrac{lcs + lcp - 1}{len} \} + 1\),减去 \(1\) 是因为像上面的例子,如果符合条件,自身的那个字符应该是相等的,会被算一次;加上 \(1\) 是因为当前枚举的这个子串不会被统计。

标签:子串,LCS,lcp,int,没事,博客,后缀,len,废弃
From: https://www.cnblogs.com/liuzimingc/p/18124997/sa

相关文章

  • 初入博客园
    一.回顾你过去将近3年的学习经历当初你报考的时候,是真正喜欢计算机这个专业吗?你现在后悔选择了这个专业吗?你认为你现在最喜欢的领域是什么(可以是计算机的也可以是其它领域)?答:1)当时报考时,很多人都推荐计算机这个行业比较好,发展前景比较好,未来也需要很多计算机专业的人,而且当时......
  • 雷军做程序员时写的博客,太牛了!
    来源:blog.sina.com.cn/leijun这篇文章是在雷总个人博客看到的,里面聊到了他作为程序员的一些经历、初衷以及思考。写的不错,转来给大家看看。如果程序人生的话,这条路太漫长。我并非天生喜欢写程序,上高中时也没有想过程序员的生活。我学电脑非常偶然,小时好友上大学时选择了计算机......
  • 园子周边第3季—设计初稿预览:2024夏天穿上博客园T恤 show your code
    随着大小鼠标垫完成上架,园子周边的下一季,园子周边的重头戏,也拉开了帷幕,开始进行创意设计。周边第3季是博客园T恤,暂定主题是:「2024夏天穿上博客园T恤showyourcode」今天我们将设计的第1版初稿发出来给大家预览,欢迎大家点评、反馈、多提宝贵建议。款式1款式2款式3款式4......
  • 个人博客项目笔记_01
    1.工程搭建前端的工程运行流程:进入项目目录执行cmd命令:若是第一次启动需要依次输入如下命令:npminstallnpmrunbuildnpmrundev之后直接执行npmrundev即可!1.1新建maven工程新建maven工程blog作为父工程,然后在父工程中创建子工程blog-api向父工程的pom.xml文件......
  • csdn博客自定义模块:显示实时天气、日历、随机语录代码
    目录1.样式说明2.效果展示3.代码下载1.样式说明vip会员或者博客专家可以自定义模块代码,比如我博客的样式,有这几部分组成:灯笼祝福(我这里是龙年快乐,可以自定义更改任何字)、滚动欢迎语(我这里是欢迎访问我的博客,可以自定义更改任何欢迎语)github链接、知乎链接、邮箱发......
  • 计算机毕业设计项目,SSM健康生活博客小程序 23497(开题答辩+程序定制+全套文案 )上万套实
    SSM健康生活博客小程序摘 要本文设计了一种基于SSM框架的健康生活博客小程序,为人们提供了运动视频教学、博客信息分享,用户能够方便快捷地查看资讯、搜索健康方面的相关信息、还能发布个人生活博客等。健康生活博客小程序采取面对对象的开发模式进行软件的开发和硬体的架设......
  • 搭建个人博客
    2024-4-622:36:31刺激,购买服务器一个月之后用一下网址续费阿里云学生服务器可恶啊,首选的域名被占了。搜索过去是无法查找的页面2024-4-623:08:38开始付款了啊2024-4-623:46:00晕,这个点都睡了吧,还怎么审核呀,等着明天早上吧......
  • 倍增(LCA与ST表)附详细讲解博客路劲以及洛谷模板题
    前置知识--倍增倍增算法,顾名思义,就是不断地翻倍。虽然是一种基础算法,但它能够使得线性的处理转化为对数级的处理,大大地优化时间复杂度,在很多算法中都有应用,其中最常见的就是ST表以及LCA(树上最近公共祖先)了。学习博客:算法学习笔记(12):ST表-知乎(zhihu.com)for(intx=......
  • YuanDaiMa2048博客文章总览
    YuanDaiMa2048博客文章总览不定期更新学习中遇到的问题以及学习笔记…一、基础概念最新流行IT技术正则化概念及使用正则表达式基本概念正则表达式与正则化[日常使用]Win+R[日常使用]Shell常用命令dos和cmd二、科研工具[实验室服务器使用]使用VSCode、PyCharm、Mo......
  • 博客园openlivewriter安装配置教程
    1.下载openlivewriter-0500_含中文包.zip 2.点击“setup”,选“Otherservices”3.填写帐号信息。password获取:登录博客后台,进“设置”,拉到最下方,查看并复制,贴到password中。然后next,最后Finish就OK了。......