重复子串(string)
从\(ckw\)博客上看来的题目,可能是正睿oj上的,但我想我这样没有氪金的自然是写不了的,就口胡一波吧
题意:给定一个字符串,多组询问,每次询问一个子串的权值;一个字符串的权值定义为这个字符串里出现次数超过\(1\)次且长度最大的子串的长度,\(n,m\leq 100000\)
首先这个东西具有单调性,我们显然可以二分
对于一次询问\([l,r]\),我们二分出来的长度是\(mid\)
如果\([l+mid-1,r]\)这个区间里有两个前缀的\(LCS\)长度大于\(mid\)我们就可以断定答案可以更大
所以我们现在需要求一个区间内两两\(LCS\)的最大值
这让我们想到了这道题
考虑到两个前缀\(LCS\)等于这两个前缀对应节点在\(parent\)树上的\(lca\)的\(len\)
于是我们启发式合并\(set\),每次把一个\(set\)往另一个\(set\)里暴力插入得时候查一下前驱和后继,因为那些距离当前位置更远的显然不如前驱或者后继更优,更容易被计入答案;这样就得到了\(nlogn\)个形如\((l,r,v)\)的三元组,表示\(l\)前缀和\(r\)前缀的\(LCS\)是\(v\)
现在我们可以直接在树套树数点,复杂度高达\(4\)个\(log\)显然不可写,考虑离线
我们将所有三元组以及询问都按照右端点排序,我们显然可以保证在处理一个询问之前把所有右端点小于它的三元组的左端点都加入到一棵线段树里去
处理询问的时候二分长度去线段树上查左端点大于\(l-mid+1\)的最大值就好了
我应该没有胡错吧
重复子串(string)的更多相关文章
- Problem C: 重复子串(string)
/* 一个性质? right集合中只有相邻的位置才会有用 那么考虑set启发式合并, 能够求出大概nlogn个有用的对 那么将这些对按照右端点排序, 查询也按照右端点排序就可以离线维护信息 然后需要维 ...
- [LeetCode] Longest Substring Without Repeating Characters 最长无重复子串
Given a string, find the length of the longest substring without repeating characters. For example, ...
- spoj687 后缀数组重复次数最多的连续重复子串
REPEATS - Repeats no tags A string s is called an (k,l)-repeat if s is obtained by concatenating k& ...
- LeetCode:Longest Substring Without Repeating Characters(最长不重复子串)
题目链接 Given a string, find the length of the longest substring without repeating characters. For exam ...
- poj 1743 二分答案+后缀数组 求不重叠的最长重复子串
题意:给出一串序列,求最长的theme长度 (theme:完全重叠的子序列,如1 2 3和1 2 3 or 子序列中每个元素对应的差相等,如1 2 3和7 8 9) 要是没有差相等这个条件那就好办 ...
- POJ 1743 (后缀数组+不重叠最长重复子串)
题目链接: http://poj.org/problem?id=1743 题目大意:楼教主の男人八题orz.一篇钢琴谱,每个旋律的值都在1~88以内.琴谱的某段会变调,也就是说某段的数可以加减一个旋律 ...
- POJ 3261 Milk Patterns (求可重叠的k次最长重复子串)+后缀数组模板
Milk Patterns Time Limit: 5000MS Memory Limit: 65536K Total Submissions: 7586 Accepted: 3448 Cas ...
- POJ 1743 Musical Theme (后缀数组,求最长不重叠重复子串)(转)
永恒的大牛,kuangbin,膜拜一下,Orz 链接:http://www.cnblogs.com/kuangbin/archive/2013/04/23/3039313.html Musical T ...
- poj 3261 Milk Patterns(后缀数组)(k次的最长重复子串)
Milk Patterns Time Limit: 5000MS Memory Limit: 65536K Total Submissions: 7938 Accepted: 3598 Cas ...
- POJ-3693-Maximum repetition substring(后缀数组-重复次数最多的连续重复子串)
题意: 给出一个串,求重复次数最多的连续重复子串 分析: 比较容易理解的部分就是枚举长度为L,然后看长度为L的字符串最多连续出现几次. 既然长度为L的串重复出现,那么str[0],str[l],str ...
随机推荐
- Spring是什么 包括SpringBean SpringMVC SpringBoot SpringCloud
什么是Spring:spring是个开源框架,spring mvc是基于spring的一个mvc框架,spring boot是基于spring4的条件注册的一套快速开发整合包. Spring两大特征: ...
- 最好用的mongodb可视化工具
TreeSoft数据库管理系统,采用web方式,对mongoDB进行管理维护,一次布署,到处使用, 功能包括:mongoDB数据的查看,新增,编辑,删除,shell命令的执行,树状展示,数据导出JSO ...
- apicloud 自定义模块引用aar
apicloud 引入aar包,如果使用apicloud自定义模块的话,如果是一般的jar包,我们需要把jar down到本地然后添加到module的libs中就可以了(不要想着用远程地址了,既然用a ...
- MongoDB数据库在centos下的操作
简介 MongoDB是一个基于分布式文件存储的数据库.由C++语言编写.旨在为WEB应用提供可扩展的高性能数据存储解决方案. MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库 ...
- JS实现自定义排序
定义:用本地特定的顺序来比较两个字符串. 语法:stringObject.localeCompare(target) 参数:target——要以本地特定的顺序与 stringObject 进行比较的字 ...
- Nginx 优化配置及详细注释
Nginx 的nginx.conf文件,是调优后的,具体影响已经写清楚注释,可以拿来用,有一些设置无效,我备注上了,不知道是不是版本的问题,回头查一下再更正. #普通配置 #==性能配置 #运行用户 ...
- [基础架构]PeopleSoft Web Server 重要文件说明
我们都知道PeopleSoft是由几个不同的服务组成的,他们在PeopleSoft体系结构中扮演着自己的角色.这些服务具有不同的文件结构并包含重要的可执行文件和配置文件. 以下是Peoplesoft体 ...
- 关于Dynamics CRM 安装用户权限的说明
做了这么多年的CRM项目,但发现部分客户的IT安全监管很严格,在CRM系统安装时,要求给出系统安排账号的权限. 这时小伙伴们 坚持不住了~~ 天天都是用域控的admin操作,这个时候问我要什么权限,于 ...
- php对文件的操作
如何让自己磁盘中的文件夹和目录显示在网页上?那就来看一下,用php是怎么来操作他们的吧 php中文件,一般包含两块内容,文件和目录先来一句一句的看代码,及他的作用 运行后看一下结果 file 指的是文 ...
- JavaScript判断当前手机是Android还是iOS系统
$(function () { var u = navigator.userAgent, app = navigator.appVersion; var isAndroid = u.indexOf(' ...