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_后缀数组
后缀数组
intrak[maxn],sa[maxn],height[maxn];inttmp[maxn],cnt[maxn];chars[maxn];voidsuffixarray(intn,intm){inti,j,k;n++;for(i=0;i=n-1)break;}for(j=rak[height[i=k=0]=0];i
熊俾
·
2019-08-28 11:26
模板
后缀数组
2019 ccpc网络赛 hdu6704 K-th occurrence
题意:给你一个字符串,再给你q个询问,每一个询问有l,r,k,求字符串中下标l到下标r这个子串第k次出现在字符串中的位置,不存在则输出-1.
后缀数组
:将所有后缀排序,height数组是比较第i个后缀和第
oneplus123
·
2019-08-23 22:37
ST表
后缀数组
主席树
【HDU4691】Front compression(求给定两个子串/后缀的最长公共前缀---
后缀数组
+st表+一点思维)
题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=4691题目:给定字符串和它的一些子串,求给出的相邻两个子串之间的最长公共前缀长度,然后再做一些变换。解题思路:height[i]表示排名i的后缀和排名i-1的后缀之间的最长公共前缀长度,且suffix(j)和suffix(k)的最长公共前缀为height[rank[j]+1],height[rank[j
_奶酪
·
2019-08-04 18:41
后缀数组
后缀数组
后缀数组
模板*以下部分代码和部分解释均来自于白书。
半世blue
·
2019-07-28 22:27
数据结构
2019牛客多校第四场 I题 后缀自动机_
后缀数组
_求两个串de公共子串的种类数
目录求若干个串的公共子串个数相关变形题对一个串建后缀自动机,另一个串在上面跑同时计数广义后缀自动机
后缀数组
其他:POJ3415求两个串长度至少为k的公共子串数量@(牛客多校第四场I题string)求若干个串的公共子串个数相关变形题牛客这题题意大概是求一个长度为
Cwolf9
·
2019-07-27 22:00
HDU6599:求本质不同的子串(回文串)长度及数量
目录hdu6599题意:manacher+后缀自动机+倍增\(O(nlog(n))\)manacher+
后缀数组
+二分\(O(nlog(n))\)回文树(回文自动机)\(O(n)\)@(hdu6599:
Cwolf9
·
2019-07-26 21:00
【模板】
后缀数组
include#include#defineLLlonglong#defineULLunsignedlonglongusingnamespacestd;constintMAXN=100010;//以下为倍增算法求
后缀数组
Dorom
·
2019-07-02 18:00
字符串常见面试题
面试相关特点广泛性可看作是字符类型的数组,与数组的排序、查找、调整有关很多其他类型的面试题可看作是字符串类型的面试题需要掌握的概念回文子串(连续)子序列(不连续)前缀树(Trie树)后缀树和
后缀数组
匹配字典序需要掌握的操作与数组有关的操作
eicomtpmh
·
2019-06-10 16:15
JAVA
2018 焦作 H. Can You Solve the Harder Problem?
思路:单调栈加
后缀数组
。
ehdhg13455
·
2019-06-09 14:57
后缀数组
POJ 2406 字符串循环节
后缀数组
处理1e6的字符串会超时(常数比较大),换成hash或kmp对fail数组的又一个理解(移位之后匹配)这题倒着想贼好想,若循环子串,则必然满足这个fail数组的性质,也可证明,满足这个性质即为循环子串
ehdhg13455
·
2019-06-08 14:20
字符串
字符串
KMP
为亚马逊面试准备
html(包括BM算法,Sunday算法)1.求字符串中最长的重复子长度:https://blog.csdn.net/u012114090/article/details/81669021方法:1.写出
后缀数组
better_eleven
·
2019-05-26 22:56
#218-[
后缀数组
]后缀排序
Description读入一个由小写字母构成的字符串,求每个后缀的排名以及相邻两个后缀的LCP长度。Input一行一个字符串。Output第一行用空格隔开的n个数,n为字符串长度,按顺序依次为第1到第n个后缀在所有后缀里面的排名。第一行用空格隔开的n个数,第i个数表示排名为i的后缀和排名为i-1的后缀的LCP长度,第一个数恒为0。aabaaaabSampleInput468123570323120
2017gdgzoi999
·
2019-05-25 08:34
2019年华南理工大学程序设计竞赛(春季赛) K Parco_Love_String(dp+递推/
后缀数组
)
链接:https://ac.nowcoder.com/acm/contest/625/K来源:牛客网时间限制:C/C++2秒,其他语言4秒空间限制:C/C++131072K,其他语言262144K64bitIOFormat:%lld题目描述众所周知,在算法竞赛中,出题人对他出的题的难度往往存在错误的估计。比如出题人本想出个简单题,没想到却出成了重坑细节题;本想出个中等难度题,结果却变成了防AK题。
LSD20164388
·
2019-04-15 19:30
递推递归
动态规划
经典dp
后缀数组
临时抱佛脚
临时抱佛jio需要打的板子高斯消元FFT/NTT拉格朗日插值LCTsplayK-DTree二分图/最大流/费用流
后缀数组
后缀自动机可能还需要重新学一下的东西整体二分Polya定理dp区间dp对于满足\(
自为风月马前卒
·
2019-04-01 20:00
loj#6041. 「雅礼集训 2017 Day7」事情的相似度(SAM set启发式合并 二维数点)
题意题目链接Sol只会
后缀数组
+暴躁莫队套set\(n\sqrt{n}\logn\)但绝对跑不过去。
自为风月马前卒
·
2019-03-29 22:00
重走长征路---OI每周刷题记录---5月10日 2014
「bzoj1458」士兵占领
后缀数组
:3.「bzoj1031」[JSOI2007]字符加密
mrcrack
·
2019-02-09 17:10
跟着大佬学算法
bzoj3238 差异
可以想到用
后缀数组
。在
后缀数组
上两个后缀的\(lcp\)长度表现为两个后缀排名之间的\(height\)的最小值。所以现在问题就又转化为了在\(height\)数组上求所有区间最小值之和。
wxyww
·
2019-01-30 21:00
后缀树(suffix tree & array)
定义:
后缀数组
(suffixarray)是将字符串的所有后缀进行排序放入数组中。后缀树(suffixtree)则是所有后缀形成的字典树(trie)的一种压缩表示。
ak1947
·
2019-01-20 18:04
luogu P4482 [BJWC2018] Border 的四种求法 -
后缀数组
题目传送门传送门题目大意区间border。照着金策讲稿做。Code1/**2*luogu3*Problem#P44824*Accepted5*Time:8264ms6*Memory:37924k7*/8#include9usingnamespacestd;10typedefboolboolean;1112template13voidpfill(T*pst,constT*ped,Tval){14fo
阿波罗2003
·
2019-01-07 12:00
bzoj 3473 字符串 -
后缀数组
- 树状数组
题目传送门传送门题目大意给定n个字符串,询问每个字符串有多少子串(不包括空串)是所有n个字符串中至少k个字符串的子串先用奇怪的字符把所有字符串连接起来。建后缀树,数每个节点的子树内包含多少属于不同串的后缀。数这个东西,可以将每个串的后缀(被奇怪的字符分割开的地方认为它属于不同后缀)按dfs序排序,然后简单容斥就能统计出来。对于每个后缀,有贡献的是一个前缀,然后直接统计就行了。Code1/**2*b
阿波罗2003
·
2019-01-07 11:00
后缀数组
倍增法模板
后缀数组
倍增法模板#includeusingnamespacestd;intn,k,ranks[100003],sa[12];//SA数组的含义:SA[I]表示所有后缀中排第I位的起始位是SA[i]boolcompare_sa
cj1064789374
·
2019-01-01 00:17
ACM笔记-2串树
【
后缀数组
/SAM+边分树合并】LGP5115 Check,Check,Check one two!
【题目】原题地址给定一个字符串SSS,求∑1≤i<j≤nlcp(i,j)lcs(i,j)[lcp(i,j)≤k1][lcs(i,j)≤k2]\sum_{1\leqi<j\leqn}lcp(i,j)lcs(i,j)[lcp(i,j)\leqk_1][lcs(i,j)\leqk_2]1≤i#definemkpmake_pair#definefifirst#definesesecondusi
Dream_Lolita
·
2018-12-28 10:56
分而治之-树分治
字符串-后缀数组
字符串-SAM
[学习笔记] 量产毒瘤题 - 纳什均衡 -
后缀数组
- 学习笔记
题目大意:给你一个字符串,两个玩家分别独立同时的选择一个后缀,并且计算两个后缀的最长公共前缀。第一个玩家希望它尽量大,另一个希望尽量小,问最后期望多长。题解:前缀知识:纳什均衡纳什均衡毫无疑问是个很复杂的问题,我们之看一个特例来了解一下。ckw和妹子玩游戏(大雾),他跟妹子说我们同时独立的写出一个0或者写出一个1,若我们都写出了0,我给你a块钱;若都写出了1,我给你b块;若我0你1,你给我c块,否
Mys_C_K
·
2018-12-26 15:41
后缀数组
学习笔记
纳什均衡
SA-IS
后缀数组
//t的范围问题要注意#include#include#includeusingnamespacestd;intmain(){intT;cin>>T;while(T--){intn;charc,f;cin>>n;getchar();f=getchar();intt=0,flag=0;for(inti=1;i=0){coutc){while(t>=0){cout";t--;}t=0;flag=1;}
KLFTESPACE
·
2018-12-22 17:34
[
后缀数组
][学习笔记]
定义——来自百度百科子串一个字符串中连续的一段成为这个字符串的子串。后缀后缀是指从某个位置i开始到整个串末尾结束的一个特殊子串。字符串r的从第i个字符开始的后缀表示为Suffix(i),也就是Suffix(i)=r[i,len(r)]。子串的大小大小比较:关于字符串的大小比较,是指通常所说的“字典顺序”比较,也就是对于两个字符串u、v,令i从1开始顺次比较u[i]和v[i],如果u[i]=v[i]
wxyww
·
2018-12-20 08:00
[bzoj1717][Milk Patterns 产奶的模式]
题目链接思路先求出
后缀数组
,并且求出LCP。二分一下长度len。check的时候就是看有没有连续的k个后缀的LCP大于len。也就是判断是不是有连续的k-1个height大于len。
wxyww
·
2018-12-19 22:00
[bzoj1692][队列变换]
然后求出
后缀数组
,给每个后缀都求个排名。然后每次取得时候取排名更小的就行了。注意这个题的输出格式,每80个字符输出为一行。
wxyww
·
2018-12-19 22:00
ACM_
贪心法_queue_Fence Repair
题目如下,来源POJFarmerJohnwantstorepairasmalllengthofthefencearoundthepasture.HemeasuresthefenceandfindsthatheneedsN(1≤N≤20,000)planksofwood,eachhavingsomeintegerlengthLi(1≤Li≤50,000)units.Hethenpurchasesas
Where_Free
·
2018-12-11 18:00
后缀自动机DC3模板
后缀数组
一些性质suffix(j)和suffix(k)的最长公共前缀为height【rank【j】+1】到height【rank【k】】中的最小值;待更新/*POJ-2406*/#include#include
Anoyer
·
2018-12-06 23:47
字符串模版
后缀数组
BZOJ-3238: [Ahoi2013]差异(Suffix Array + Cartesian Tree)
id=3238这是我ORZ了网上的题解才知道的555:首先做一次
后缀数组
,求出sa[],height[],然后对于height[2..len(s)]建立CartesianTree,那么每个节点对于题目中项
AmadeusChan
·
2018-10-16 20:40
ACM修炼指南(网上通用版 -----已修改格式方便查看)
文章目录----------目录----------点击进入bestsort个人版----------数据结构----------栈,队列,链表,树并查集平衡二叉树二叉排序树线段树树状数组字典树
后缀数组
bestsort
·
2018-10-10 16:19
各类集合
bryce1010专题训练——
后缀数组
1.定义介绍
后缀数组
后缀数组
SA是一个一维数组,它保存1…n的某个排列SA[1],SA[2],…,SA[n]。
bryce1010
·
2018-09-21 11:14
1.1
计蒜客 焦作网络赛 String and Times(
后缀数组
)
思路:
后缀数组
,对于一个height[i],求height[i-1]---height[i]区间有多少个h满足存在大于等于h的连续的最长长度>=A并且#include#include#includeusingnamespacestd
_XFire
·
2018-09-15 20:34
字符串
后缀数组
最详细的
后缀数组
写在前面:多余的我就不提了,只是觉得网上的博客吧流程,每个数组存的是下标还是值,都讲的不是很清楚(让我这种蒟蒻很是困扰)相信到现在这种水平的都可以知道什么是倍增,为什么能倍增都比较清楚了,但是代码实现总感觉怪怪的……本文的定位就是想把代码实现的部分讲清楚……现在请听我娓娓道来……清爽代码:#include#include#includeusingnamespacestd;constintMAX=1
ezoiLZH
·
2018-09-08 08:56
算法学习
【算法模板】树状数组,手写留念~
#include"bits/stdc++.h"usingnamespacestd;#defineINF999999999#defineinf10009//
后缀数组
的学习:预处理nlogn,实现logn的前缀和求
仰天长笑泪满衣
·
2018-09-03 19:48
数据结构
常用算法模板
HDU6194
后缀数组
的应用
分析:第一道
后缀数组
的题目。
胖胖 wl
·
2018-08-30 12:56
字符串
后缀数组
题表
定义1.1.后缀:包含最后一个字符的字串。2.2.前缀:包含第一个字符的字串。3.3.子串:字符串中连续的某一段。等价定义:某个后缀的前缀4.sa[i]4.sa[i]表示排名为ii的后缀的起始位置。5.rank[i]5.rank[i]表示起始位置为ii的后缀的排名。6.lcp(i,j)6.lcp(i,j)表示起始位置为ii的后缀和起始位置为jj的后缀的最长公共前缀。7.height[i]=lcp(
linjiayang2016
·
2018-08-17 10:59
后缀数组
2018暑期集训 子串查询(主席树+
后缀数组
)
题面:单点时限:2.0sec内存限制:512MB现在Jack有一个只由只由小写字母组成的字符串S,现在他想进行下面的查询:查询S中[l,r]子串第2次出现时第一个字母的位置。输入格式T组输入对于每组输入,第一行输入一个n,m代表S的长度和查询的次数。接下来m行,每行输入一组l,r,代表查询的子串。(1≤n,m≤100000,1≤l≤r≤n)输出格式对于每组查询,输出子串l,r第2次出现的位置,如果
codancer
·
2018-08-09 16:07
动态规划--LIS
【LuoguP4143】采集矿石(
后缀数组
求解子串字典序)
题目链接题意给出一个字符串,每一个位置上的字符有一个权值,统计满足如下条件的子串个数:它包含字符的权值和等于它在所有本质不同的子串中的字典倒序Sol首先暴力的思路就是把每一个串抠出来sort,直接算.然后所有字符相同就是方便了我们处理字典序,在写这一档分时,我们应该是枚据一个左端点,然后二分右端点为什么呢?因为当字符相同时字典序只和长度有关,右端点每往右移动一下,字典序一定是下降的,但是权值和却不
NeosKnight
·
2018-08-06 22:09
======题解======
===字符串===
后缀数组
牛客网多校3 Sort String(
后缀数组
DC3)
题目:就是给你一个串,对于第i个位置,你可以把前i个字符放到队尾形成一个新的字符串,问你最后一共有几个字符串DC3卡过去了hhhh#include#include#include#include#defineF(x)((x)/3+((x)%3==1?0:tb))#defineG(x)((x)=0;i--)b[--wss[wv[i]]]=a[i];}voiddc3(int*r,int*sa,intn
_XFire
·
2018-07-27 22:11
字符串
后缀数组
多校
POJ - 2406 Power Strings (
后缀数组
dc3算法模板)
题目:给出一个字符串问它最多由多少相同的字串组成。kmp简单的三十行代码而且时间还快,一切都是为了dc3模板/*复杂度接近O(n)所有相关数组都要开三倍*/#include#include#include#include#defineF(x)((x)/3+((x)%3==1?0:tb))#defineG(x)((x)=0;i--)b[--wss[wv[i]]]=a[i];}voiddc3(int*
_XFire
·
2018-07-27 10:16
字符串
后缀数组
牛客网暑期ACM多校训练营(第三场)E Sort String【循环节】
https://www.nowcoder.com/acm/contest/141/E用
后缀数组
和哈希操作发现都会超时,后经发现答案跟循环节有关,只需用next数组找出循环节即可。
Irish_Moonshine
·
2018-07-26 19:11
Data
Structure
uva 11107 (
后缀数组
入门)
思路:找出现次数大于n/2次的最大子串,一个子串出现多次,那么他们的排名肯定是相邻的,所以利用height数组,找出相邻排名最长公共前缀长度等于K的区间。看看这个区间中的个数是否大于n/2,满足的话这个k长度就符合。所有我们需要枚举k的大小,可以用二分查找这个临界点。#includeusingnamespacestd;typedeflonglongll;constintINF=1=0;i--)sa
__meteor
·
2018-07-24 19:05
字符串
SA
后缀数组
总结
SA
后缀数组
用于字符串。首先把每一个位置对应的后缀字符串按字典序从小到大排序,然后设sa[i]表示排名为i的后缀串在原串中对应的位置,rank[i]表示原串中位置i对应的后缀的排名为i。
chiyankuan
·
2018-07-14 21:06
算法
最长重复字符串
求解一个字符串中出现的最长的重复的字符串,可以重叠可以使用
后缀数组
的解法,先建立
后缀数组
,然后将数组排序,最后比较相邻的数组之间是否存在相同字符子串#include#include#include#includeusingnamespacestd
Alatebloomer
·
2018-06-22 17:19
数据结构与算法
后缀数组
学习笔记
近期学习了
后缀数组
。以下是我个人对这一算法的理解。
后缀数组
一共有两种算法:倍增法和DC3算法。
DntcryBecthlev
·
2018-06-20 21:55
算法学习笔记
HDU.6294.SA-IS
后缀数组
(思维)
小Q最近阅读了SA-IS算法在线性时间内构造
后缀数组
的相关论文,面对任何字符串题,都可以想出线性时间的算法。小T在经历过二分图匹配事件后,再也不相信小Q所说的话。
MiaoPlus
·
2018-06-07 20:30
【模板】
后缀数组
&后缀自动机
关于后缀自动机SAM,贴一个非常好的讲解:后缀自动机学习小记代码交洛谷模板可A
后缀数组
传送门:洛谷-【模板】后缀排序#includeusingnamespacestd;constintN=1e6+5;chars
ccosi
·
2018-05-12 19:19
后缀自动机
后缀数组
【HAOI2016/BZOJ4566】找相同字符
后缀数组
+单调栈
原题走这里鉴于我实在不是很懂单调栈和单调队列这一系列东西,所以我决定稍微具体讲一下单调栈。恩,本题实质上就是求两个字符串的公共子串数,其中只要出现位置不同,就算是不同的子串。处理多个字符串的经典套路:把两个字符串连在一起,中间用分割符分割。于是问题就转化为了:求分隔符前后都出现过的子串个数。子串就是后缀的前缀,于是问题又转化成了:求整个串中,任意两个后缀的LCP之和,这两个子串要一个在分割符前,一
CRTorlonia
·
2018-05-11 22:03
【USACO06DEC/Luogu2852】牛奶模式
后缀数组
半模板题
原题走这里本题实质上,就是求序列中最长的出现了至少kk次的子串而子串实质上就是后缀的前缀,于是我们可以使用
后缀数组
鉴于
后缀数组
中,拥有相同前缀的的一系列后缀会表现为一段连续的区间而相邻后缀的公共前缀长度又储存在
CRTorlonia
·
2018-05-09 17:06
上一页
8
9
10
11
12
13
14
15
下一页
按字母分类:
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
其他