E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
ACM_后缀数组
2018 ICPC 焦作 H题 Can You Solve the Harder Problem?
要求重复的区间只能算一次,很容易想到相同的子串,又联想到
后缀数组
。
后缀数组
中height数组表示字典序相邻的两个后缀的LCP,那么显然LCP就是重复的,我们不能算
Spy97
·
2020-07-31 20:35
后缀数组
ICPC
ICPC
2018
焦作
Can
You
Solve
the
Harder
Probl
hdu 4622(后缀自动机|
后缀数组
)
//昨天晚上一直用
后缀数组
来写,怎么写都超时(后来在网上看到也有用
后缀数组
过的,然来是自己昨晚sb,用把l,r区间的rank数组排序来使l,r区间内的rank有序,其实直接按rank,O(n)遍历就可以做到
laziercs
·
2020-07-31 19:22
数据结构
一些模板
LCP数组的实现和最长公共连续子串
LCP数组(LongestCommonPrefixArray,高度数组):是由
后缀数组
中相邻两个后缀的最长公共前缀的长度组成的数组。
iteye_11790
·
2020-07-31 18:07
hdu 4416 Good Article Good sentence (后缀自动机 SAM)
2012杭州网络赛的一道题,
后缀数组
后缀自动机都行吧。题目大意:给一个字符串S和一系列字符串T1~Tn,问在S中有多少个不同子串满足它不是T1~Tn中任意一个字符串的子串。
dyx心心
·
2020-07-31 17:25
字符串
后缀自动机
基数排序(C++模板)&&计数排序(C++模板)
在学习
后缀数组
时发现一个非常有趣的排序具体咋有趣不知,个人认为有意思具体实现方法看大佬博客https://blog.csdn.net/weixin_39408343/article/details/107115403
dreamcyf
·
2020-07-31 17:37
排序
2014西安网络预选赛1002(
后缀数组
求第K大的子串)hdu5008
BoringStringProblemTimeLimit:6000/3000MS(Java/Others)MemoryLimit:65536/65536K(Java/Others)TotalSubmission(s):272AcceptedSubmission(s):65ProblemDescriptionInthisproblem,youaregivenastringsandqqueries.F
cq_phqg
·
2020-07-31 16:11
数据结构_后缀数组
2018 ICPC 焦作 Can You Solve the Harder Problem? Gym - 102028H
做法:首先看到不同的串,即顺序数值都不同,关于这个我们直接用
后缀数组
解决。但不过关于价值怎么求,就是一个问题了。
KXL5180
·
2020-07-31 14:12
ACM题解
字符串
HDU 4622 Reincarnation (查询一段字符串的不同子串个数,后缀自动机)
如果单单是求一个字符串的不同子串个数,无论是
后缀数组
还是后缀自动机都非常容易实现。Nfa->len,p->len]之间的,个数也就清楚了。
Ezereal
·
2020-07-31 13:32
字符串—后缀自动机
【
后缀数组
】【线段树】codeforces102028H Can You Solve the Harder Problem?
H.CanYouSolvetheHarderProblem?timelimitpertest6.0smemorylimitpertest1024MBinputstandardinputoutputstandardoutputYouaregivenasequenceadenotedby(a1,a2,⋯,an).Aquerywith1≤l≤r≤nisdefinedasQmax(l,r)=max{al,
BUAA_Alchemist
·
2020-07-31 13:36
后缀数组
线段树/树状数组
Codeforces
后缀数组
线段树
hdu 4898 LCP+贪心思维
利用这种思想,首先我们可以预处理所有子串的LCP(
后缀数组
+记录O(2nlog(2n))+O(n*n),dp(O(4*n*n)))然后将这些子串利用LCP按照字典序排序,开始二分答案。
TommyTT
·
2020-07-31 12:50
BNUZ_2019_IT节_
ACM_
网络赛 题解
队友写的题解(无代码)A.分不分#include#definelllonglongusingnamespacestd;intmain(){intT,cas=1,x;cin>>T;while(T--){cin>>x;printf("Case#%d:\n",cas++);if(x%2==1){cout#defineMAXN6#defineMAXM200005#defineMOD1000000007#d
anthony1314
·
2020-07-30 14:03
ACM题目和算法
2020牛客暑期多校训练营
文章目录2020牛客暑期多校训练营第一场出题人:叉姐AB-SuffixArray:
后缀数组
BInfiniteTree:虚树+DPHMinimum-costFlow:最小费用最大流I1or2:思维拆点+带花树第二场出题人
Cwolf9
·
2020-07-30 09:43
Codeforces 427D Match & Catch 后缀自动机 或
后缀数组
题目大意:就是对于两个字符串S1和S2,求出他们最短的一个公共字串P,满足P在S1中只出现1次,P在S2中也只出现一次,输出P最小的长度,如果这样的P不存在,输出-1大致思路:很明显的一个做法是将S1和S2连接起来中间用未出现的字符隔开,然后建立后缀自动机,记录每一个状态中表示的字符串的来源(可以状压记录),然后所有状态中,满足Right集合为2,且状压表示出现在了2个字符串中即可,在这样一个状态
Gatevin
·
2020-07-30 01:11
Codeforces
CodeForces - 1073G Yet Another LCP Problem(
后缀数组
+ 单调栈 / 分治)
大致题意给你一个字符串SSS,然后有qqq个询问。对于第iii个询问,给出两个数字kik_iki和lil_ili序列a1,a2,...,akia_1,a_2,...,a_{k_i}a1,a2,...,aki和b1,b2,...,blib_1,b_2,...,b_{l_i}b1,b2,...,bli,让你求∑i=1i=k∑j=1j=lLCP(s[ai…n],s[bj…n])\sum\limits_{
alpc_qleonardo
·
2020-07-30 01:00
CodeForces
后缀数组
ACM_
大数运算 模板&&讲解&&各大oj题目
///////////////////////////////////////////////////////////////////////////////////////////////////////作者:tt2767声明:本文遵循以下协议自由转载-非商用-非衍生-保持署名|CreativeCommonsBY-NC-ND3.0查看本文更新与讨论请点击:http://blog.csdn.net
tt2767
·
2020-07-29 14:10
ACM_大数运算&&高精度
ACM_
搜索:杭电oj1026:Ignatius and the Princess I
题目传送门:http://acm.hdu.edu.cn/showproblem.php?pid=1026题目大意:一个人要从N*M矩形地图的左上角走到右下角.且只能向四个方向走.X表示墙不能走.字符1-9表示怪物并且数字代表怪物的血量.也就是杀死怪物需要该数字的单位时间.人每走一个格子花费1个单位的时间.然后要你按照格式打印最短时间的路径和具体的路径.简单的最短路径题.直接用bfs做.用二维数组保
闭上左眼看世界
·
2020-07-29 14:41
ACM_搜索遍历
牛客多校第一场 A-B-Suffix Array(
后缀数组
)
目录题意解题思路代码题意链接:B-SuffixArray给你一个长度为n的只由‘a’和‘b’组成字符串(1#includeusingnamespacestd;intconstmaxn=1e5+6;intsa[maxn],rk[maxn],tp[maxn],tax[maxn];intn,m,p,ss[maxn];chars[maxn];voidradixsort(){for(inti=0;i=1;i
+0呐~
·
2020-07-29 03:53
#
7.12第一场
2020牛客多校赛
2018纪中暑期15天&期末考试 总结
前言比赛、吃饭与FBI学习算法后缀自动机
后缀数组
zkw费用流AC自动机圆方树Tarjan(复习,补充概念)树形DP(复习)比赛概况个人:总体来说还好吧,成绩起落相比上一次变小了,成绩相对稳定,一般徘徊在本校同年级
ssl_xxy
·
2020-07-29 01:56
总结
OI生涯
2020牛客暑期多校训练营(第一场)A B-Suffix Array(
后缀数组
,思维)
链接:https://ac.nowcoder.com/acm/contest/5666/A来源:牛客网题目描述TheBBB-functionB(t1t2…tk)=b1b2…bkB(t_1t_2\dotst_k)=b_1b_2\dotsb_kB(t1t2…tk)=b1b2…bkofastringt1t2…tkt_1t_2\dotst_kt1t2…tkisdefinedasfollows.Ifther
brav0
·
2020-07-28 22:39
字符串-后缀数组
ACM_
树状数组
2020.4.9腾讯实习面试面到了这个题太久没接触已经忘了答得也不是很好一、问题引入维护数组看起来是十分简单的事情。修改某点的值只要有下标直接就能改了,那对于求某个区间的和,怎么做呢?我们可以使用一个前缀和的方法对原数组a[1]a[2]a[3]...a[n]a[1]a[2]a[3]...a[n]a[1]a[2]a[3]...a[n]我们创建一个前缀和数组ss[1]=a[1],s[2]=a[1]+a
god_speed丶
·
2020-07-28 08:20
ACM
ACM_树状数组
(LeetCode1044)最长重复子串:给出一个字符串S,返回其最长重复子串
最长重复子串的解法题目描述方法1:
后缀数组
法方法2:字符串编码法方法3:二分查找+字符串编码法题目描述给出一个字符串S,考虑其所有重复子串(S的连续子串,出现两次或多次,可能会有重叠)。
一步szh
·
2020-07-28 07:22
编程题目
2020 牛客多校训练第一场之 A——B-Suffix Array 题解
printnintegerswhichdenotetheresult.输入2aa3aba5abaab输出2132154213题解:c[i]的值是i后面离“i指针”对应的字母最近的与s[i]同字符的距离,字符串的
后缀数组
就与这个
三层球的冰淇淋
·
2020-07-27 16:27
后缀数组
结论题
题解
字符串
最小循环节+KMP/LCP+
后缀数组
7.26牛客暑期多校训练营三 E
5.题目描述Eddylikestoplaywithstringwhichisasequenceofcharacters.Oneday,EddyhasplayedwithastringSforalongtimeandwondershowcouldmakeitmoreenjoyable.Eddycomesupwithfollowingprocedure:Foreachiin[0,|S|-1],letS
木直
·
2020-07-27 16:29
大二暑假集训
后缀数组
及其应用
后缀数组
概念基本概念介绍:子串:字符串S的子串r[i..j],i≤j,表示r串中从i到j这一段,就是顺次排列r[i],r[i+1],...,r[j]形成的字符串。
DanielWang_
·
2020-07-15 23:46
数据结构
算法
编程练习ACM
后缀数组
求最长重复子串
问题描述给定一个字符串,求出其最长重复子串例如:abcdabcd最长重复子串是abcd,最长重复子串可以重叠例如:abcdabcda,这时最长重复子串是abcda,中间的a是被重叠的。直观的解法是,首先检测长度为n-1的字符串情况,如果不存在重复则检测n-2,一直递减下去,直到1。这种方法的时间复杂度是O(N*N*N),其中包括三部分,长度纬度、根据长度检测的字符串数目、字符串检测。改进的方法是利
hackbuteer1
·
2020-07-15 17:16
剑指Offer
IT公司笔试题集锦
output
数据结构
string
input
c
存储
后缀数组
的应用一
1、可重叠的最长连续子串题意:给一个字符串,问重复出现的连续的子串中最长的,重复的子串可以有重叠的部分,若结果不止一个则输出字典序最小的例:对于字符串"abcabcabc",结果为"abcabc";对于字符串"abcdggabc",结果为"abc"解法:找到height数组中最大的,假设height[i]是最大的,其值为s,则后缀Sa[i]的前s个字符就是结果2、不可重叠的最长连续子串题目:POJ
AcTarjan
·
2020-07-15 16:00
数据结构
【2012百度之星/资格赛】H:用户请求中的品牌 [
后缀数组
]
时间限制:1000ms内存限制:65536kB描述馅饼同学是一个在百度工作,做用户请求(query)分析的同学,他在用户请求中经常会遇到一些很奇葩的词汇。在比方说“johnsonjohnson”、“duckduck”,这些词汇虽然看起来是一些词汇的单纯重复,但是往往都是一些特殊品牌的词汇,不能被拆分开。为了侦测出这种词的存在,你今天需要完成我给出的这个任务——“找出用户请求中循环节最多的子串”。输
weixin_34179762
·
2020-07-15 15:13
开博后第一个程序:radix sort
最近在看
后缀数组
和后缀树的相关知识,经常提到radixsort这种排序方法。
zxj346158052
·
2020-07-15 13:44
排序算法
iterator
system
google
算法
后缀数组
&&后缀自动机小结
后缀数组
板子#include#include#include#include#includeusingnamespacestd;intn;constintN=1000010;intsa[N],x[N],
黑猫black
·
2020-07-15 12:55
字符串
Suffix Array
后缀数组
后缀数组
顾名思义,SuffixArray(以下有时简称SA)和字符串的后缀有关。后缀:字符串中某个位置一直到结尾的子串。(SA中讨论包括了原串和空串),所以共有len+1个后缀。
xuelanghu407
·
2020-07-15 10:40
控制
ACM算法大全
,队列,链表哈希表,哈希数组堆,优先队列双端队列可并堆左偏堆二叉查找树Treap伸展树并查集集合计数问题二分图的识别平衡二叉树二叉排序树线段树一维线段树二维线段树树状数组一维树状数组N维树状数组字典树
后缀数组
冰冰的小宝贝
·
2020-07-15 10:48
后缀数组
(suffix array)
参考:Suffixarray-Wiki
后缀数组
(suffixarray)详解6.3SuffixArrays-算法红宝书SuffixArray
后缀数组
基本概念应用:字符串处理、生物信息序列处理后缀:学过英语的都知道什么叫后缀
weixin_34220623
·
2020-07-15 05:59
后缀数组
(suffix array)详解
写在前面在字符串处理当中,后缀树和
后缀数组
都是非常有力的工具。其中后缀树大家了解得比较多,关于
后缀数组
则很少见于国内的资料。
weixin_34198762
·
2020-07-15 05:43
【知识总结】
后缀数组
(Suffix_Array)
又是一个学了n遍还没学会的算法……
后缀数组
是一种常用的处理字符串问题的数据结构,主要由\(sa\)和\(rank\)两个数组组成。
weixin_30826761
·
2020-07-15 03:15
suffix_array(
后缀数组
)
#include#include#include#includeusingnamespacestd;vectorgrade;vectorsa;vectortempg;intk;strings;boolcmpsa(inta,intb){if(grade[a]!=grade[b])returngrade[a]>s){getsa();for(inti=0;i
wdcxccsdn
·
2020-07-15 02:26
算法&数据结构
[ACM模板]SuffixArray
后缀数组
#include#include#include#includeusingnamespacestd;classSUFFIXARRAY{#defineSLEN201000/*直接用函数.solve(chars[],intcharSetSize=128),s[]下标从0开始。charSetSize:表示0n)break;f[i][j]=min(f[i][j-1],f[i+(1r)swap(l,r);l
vcvycy
·
2020-07-15 02:58
ACM模板
后缀数组
_可重叠的 k 次最长重复子串
http://www.cnblogs.com/staginner/archive/2012/02/03/2337482.html我们可以通过二分子串的长度k来做,这时就将题目变成了是否存在重复次数至少为K次且长度不小k的字符串。首先我们可以把相邻的所有不小于k的height[]看成一组,这组内有多少个字符串,就相当于有多少个长度至少为k的重复的子串。之所以可以这么做,是因为排名第i的字符串和排名第
Gitfan
·
2020-07-15 01:28
2020牛客暑期多校训练营(第一场)A B-Suffix Array ——
后缀数组
+归并排序
Thisway题意:现在有一个长度为n的仅包含a,b两种字符的字符串,定义数组b然后对于当前串s的所有后缀都求一遍b之后,按b数组字典序从小到大输出后缀的起点。题解:赛场上完全想不出来,是别人教的,首先考虑归并排序,对于当前两个位置,我们先找到它后面第一个另一种字符的位置:哪个的前面相同部分长度更小,哪个字典序就小。如果相同的话,那么就求出第一个不同位置之后的最长公共前缀(lcp),然后那个位置之
天翼之城
·
2020-07-14 23:57
想法
后缀数组
Suffix Array【
后缀数组
】
算法介绍
后缀数组
是用来解决⼀类字符串问题的⼯具算法目标是计算出字符串的每个后缀的排名几个要用到的定义n:字符串的长度sz:字符集s:字符串,方便起见,我们从0开始标号,即s[0]~s[n-1]suf[i
ShɑΙteж
·
2020-07-14 23:17
字符串
后缀数组
(Suffix Array)
啥是
后缀数组
?难不难?
后缀数组
看上去是一个很高深,很玄妙的东西。但首先,我们要树立一个观点:它!不难!!实际上,他也真的不难。难的只是其中一个想法的操作。除此以外,不难。
_WuZHua
·
2020-07-14 20:31
一些有趣的较难的算法
Boring String Problem【HDU-5008】【
后缀数组
+RMQ】
思路:因为我们知道
后缀数组
的sa是根据所有后缀的字典序排序的,所以我们可以直接先去预处理不同子串的前缀和,然后我们就可以直接进行查询了,但是有可能存在一个有重复的子串,我们需要去找到它的可能的最先出现的位置
Andres_Lionel
·
2020-07-14 20:49
后缀数组
后缀数组
RMQ
Substring【HDU-5769】【
后缀数组
】
题目链接题意:要让我们求包含字符X的本质不同的子串的个数。思路:我们可以求以每个点作为子串的首字符时候的造成的贡献,那么此时首先就是需要减去前面的height,还要再去找到后面的字符X的最近的位置,可以是自己本身就是字符X,然后就可以用这两个来进行计算贡献了。#include#include#include#include#include#include#include#include#inclu
Andres_Lionel
·
2020-07-14 20:49
后缀数组
Codeforces 504E Misha and LCP on Tree 树链剖分+
后缀数组
题意给一棵树,每个节点上有一个字符。每次询问a到b的路径组成的字符串和c到d的路径组成的字符串的lcp。n#include#include#include#include#includeusingnamespacestd;constintN=300005;intn,s[N*2],dep[N],fa[N],size[N],p1[N],p2[N],cnt,last[N],b[N*2],c[N*2],d
SFN1036
·
2020-07-14 18:40
树链剖分
后缀数组
后缀数组
总结
水题POJ2774求两个串的最长公共子串(最长公共前缀)。求两个数的最长公共子串,可以将两个字符串中间加一个‘$’然后拼接成一个子串。这样两个最长公共子串问题转换为一个大串的最长公共前缀,因为height数组存的是i-1和i位置的最长公共前缀,因此只要保证i-1和i位置的子串是不同的字符串即可。#include#include#include#include#include#includecons
WinJourn
·
2020-07-14 08:29
后缀数组
(Suffix Array)学(复)习小记
前言
后缀数组
是个十分有用的东西,上一年就学过,结果又还给pdf了,如今再看一遍,好懂很多。怎么说呢,get了height后,SA能解决很大一部分字符串问题。
ZLTJohn
·
2020-07-14 06:31
后缀数组
倍增
杂文
trie上构建
后缀数组
和波兰表
普通
后缀数组
的倍增构建对于单个字符串上的
后缀数组
的建造,一般都是倍增一个长度l,然后对于当前的排序组,每隔l就把两个元素并在一起,拿这两个东西分别作为两个关键字再排序,直到倍增长度大于字符串长。
GEOTCBRL
·
2020-07-14 04:36
随笔
后缀数组
后缀数组
(Suffix Array )
定义说明:后缀:从字符串的任意一个字符开始一直到最后一个字符所构成的一个字符串例如:对于字符串"abcdefg","cdefg"、"efg"、"g"都是后缀,"cde"则不是后缀在学习
后缀数组
之前,我们首先要知道
后缀数组
是什么
AcTarjan
·
2020-07-14 03:13
数据结构
2020年牛客多校A题
网友提醒后补充一下:对于"bbb""bbb""bbb"这个的A应该是011001100110,D为空,具体的分割的原则有两个一是D不会因为分割受到影响(第一个a和第一个b会变成0嘛,才能直接根据整个串的B数组的
后缀数组
Z~柳
·
2020-07-14 00:09
多校
BZOJ-1031: [JSOI2007]字符加密Cipher(
后缀数组
模版)
id=1031思路:加倍成环,然后跑一次
后缀数组
就好了。**********第一次写
后缀数组
,写得很渣。。代码长,速度又慢。。。
AmadeusChan
·
2020-07-13 21:29
[zz终于搞懂]
后缀数组
-建数组代码分析
至于是不是真的搞懂还不知道话说看那个说五分钟搞懂的(http://blog.csdn.net/yxuanwkeith/article/details/50636898)我这个zz看了一个多小时在知道这个东西之后已经过了3个月了提高知识水平!算法思想略(都知道了吧)-图然而代码是天书啊!!!!!!!voidbuild_sa(intm){inti,*x=t,*y=t2;for(i=0;i=0;i--)
Leokery
·
2020-07-12 18:18
后缀数组
算法分析
OI
上一页
4
5
6
7
8
9
10
11
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他