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-后缀数组
ACM-
猪生子问题
这道题是杭电ACM课的第一次测试。当时被c++字符串输入和输出的坑浪费了好多时间,所以没做,现在有空就把它做一下题目大概意思某大学生回家养猪致富,第一年他又一只猪(猪第一年是一岁,没有0岁),每只猪在第三年的时候会生4只猪仔,而猪在5岁的时候会被卖掉。现在要求任意输入某一年,求当年该大学生拥有的猪数例子input135output1520题目分析看到这种题目,不用说,肯定是列出前几项找规律的。我们
文仔CXKSNLXX
·
2023-03-17 02:58
TODO-List
数学约数相关DPZJOI2016小星星序列DP之单调队列优化序列DP之决策单调性优化序列DP之斜率优化树形DP斯坦纳树字符串AC自动机字符串哈希
后缀数组
树套树二维线段树(区间线段树套区间线段树)区间线段树套平衡树区间树套权值线段树权值线段树套区间线段树分块套主席树数据结构综合
weixin_30596343
·
2023-02-23 12:06
数据结构与算法
后缀数组
模板
#includeusingnamespacestd;typedeflonglongll;constintN=1e5+8,M=1e6+8;intn,a[N],K,ans,q[N];intcnt[M],t1[N],t2[N],sa[N],ht[N],rk[N];voidbuild_sa(intm,int*s){memset(cnt,0,sizeof(cnt));for(inti=1;ik)t2[++p
失树
·
2023-02-03 22:54
后缀数组
1
最长公共子串:如果有兴趣就尝试一下吧~~最长公共子串这个题需要求
后缀数组
,简单说一下这个原理找出所有以iii为起始,以n−1n-1n−1为终止字符的后缀串,然后把他们用sasasa和rankrankrank
写的不好先睡了
·
2022-12-31 14:30
算法题目
c++
字符串
后缀数组
Maximum repetition substring POJ
#include#include#includeusingnamespacestd;constintmaxn=100005;//以下为倍增算法求
后缀数组
intwa[maxn],wb[maxn],wv[maxn
Yukar_syt
·
2022-12-31 02:39
Suffix
array
ini
算法
c
NOI2021信息竞赛学习笔记
|(扩展)欧拉定理|欧拉反演2.线性筛3.莫比乌斯反演4.FFT&NTT5.生成函数6.多项式全家桶7.单位根反演8.FWT9.拉格朗日插值10.线性基11.burnside&polya四、字符串1.
后缀数组
andyc_03
·
2022-12-24 14:11
线性代数
图论
算法
SA
后缀数组
/ SAM 后缀自动机 c++ 模板
文章目录前言代码1.SA2.SAM前言SA
后缀数组
模板SAM后缀自动机模板代码1.SA#include#includeusingnamespacestd;constintmaxn=1e6+6;chars
Lusfiee
·
2022-12-16 19:29
字符串习题
算法
c++
数据结构
后缀自动机(SAM)构造实现过程演示+习题集锦
后缀自动机的详细搭建过程,方便以后复习具体的某些证明,为什么这么做,正确性劈里啪啦一大堆就不赘述了讲解指路☞后缀自动机后缀自动机上每一条到iii的路径对应一个子串,整个自动机包含了字符串的所有子串很多时候可以和
后缀数组
等价使用
ikrvxt
·
2022-12-16 19:24
#
自动机
自动机
后缀自动机
后缀数组
模版(自写)
structSuffixArray{staticconstexprintN=1e6+5;intM=100;intsa[N],rank[N],tp[N],a[N];intn;voidSort(){for(inti=0;i=0;i--){sa[--a[rank[tp[i]]]]=tp[i];}}voidbuild(strings){n=s.length();for(inti=0;i=len){tp[p
愚末语
·
2022-11-20 10:31
学习
算法
c++
数据结构
字符串家族 学习笔记
可能需要的前置字符串哈希KMPtrie树manacher算法可能涵盖的内容目前已有的:
后缀数组
SAAC自动机未来可能会有的:扩展KMP后缀自动机回文自动机子序列自动机本文可能会有很多错误,还请发现的大佬们指出
__Diu
·
2022-03-15 19:00
后缀数组
复习
后缀数组
数组的定义一下排名均是在字典序下的排名\(sa[i]\):排名为\(i\)的后缀的编号\(rank[i]\):第\(i\)个后缀串的排名有\(rank[sa[i]]=i\)和\(sa[rank[
Arashimu
·
2022-02-20 14:00
[海军国际项目办公室]游戏
游戏题目描述题解我们可以考虑转化到
后缀数组
上来。我们将串AAA与串BBB接在一起,将所有后缀按照字典序进行排序。
StaroForgin
·
2021-10-07 16:39
#
线段树
算法
一篇文章带你了解C++的KMP算法
目录KMP算法步骤1:先计算子串中的前
后缀数组
NextC++代码:步骤2:查找子串在母串中出现的位置。
·
2021-08-15 17:57
第三章_字符串_2019-03-18
字符串的特点重要广泛性1、可以将字符串转化为字符数组2、很多题貌似不是字符串类型,但是可以转化为字符串类型题解决常见概念回文、子串、子序列(不连续)、前缀树(Trie树)、后缀树和
后缀数组
、匹配、字典序常见操作增
雨住多一横
·
2021-06-23 18:57
BZOJ-[SCOI2012]喵星球上的点名(
后缀数组
正解:Suffix Array+ST+Binary Search+BIT+sort)
id=2754网上大神们的正解都是用AC自动机,蒟蒻不会写AC自动机,只能
后缀数组
硬着头皮上了。
AmadeusChan
·
2021-06-19 05:32
后缀数组
_不可重叠最长重复子串
http://poj.org/problem?id=1743先二分答案,把题目变成判定性问题:判断是否存在两个长度为k的子串是相同的,且不重叠。解决这个问题的关键还是利用height数组。把排序后的后缀分成若干组,其中每组的后缀之间的height值都不小于k。有希望成为最长公共前缀不小于k的两个后缀一定在同一组。然后对于每组后缀,只须判断每个后缀的sa值的最大值和最小值之差是否不小于k。如果有一组
Gitfan
·
2021-04-20 23:34
2021-02-10:如何求出两个字符串的最大公共子串长度?
3.
后缀数组
。时间复杂度是O(M+N
福大大架构师每日一题
·
2021-02-10 16:18
福大大架构师每日一题
算法
golang
试题 算法训练
后缀数组
——最长重复子串
资源限制时间限制:100ms内存限制:256.0MB问题描述给定一个长度为n的数串,求至少出现k次的最长重复子串的长度,这k个子串可以重叠。保证有子串出现至少k次。输入格式第一行:两个整数n,k;第二行:2到n+1行:n个整数,这n个整数组成了一个数串。输出格式一个整数,表示最长重复子串的长度。样例输入8212323231样例输出4数据规模和约定0≤n≤20000,2≤k≤n,0≤数串中的整数≤1
先生卖我几斤仁义道德
·
2021-01-31 23:14
蓝桥杯
c++
acm-
(好题、kmp、思维、字符串)Good Bye 2020 G. Song of the Sirens
传送门设ans[i]ans[i]ans[i]表示www在sis_isi重复的次数,我们要求的其实就是ans[k]ans[k]ans[k]。设g[i]g[i]g[i]表示www在sis_isi中的重复次数,但是必须包含ti−1t_{i-1}ti−1。于是不难写出ans[i]=2ans[i−1]+g[i]ans[i]=2ans[i-1]+g[i]ans[i]=2ans[i−1]+g[i],假设s[cu
&*^*&
·
2021-01-01 18:46
思维游戏
思维
字符串
acm竞赛
算法
kmp
【POJ】3415 Common Substrings 【
后缀数组
+单调栈】
传送门:【POJ】3415CommonSubstrings题目分析:题目要求的实质是计算A的所有后缀和B的所有后缀之间的最长公共前缀的长度,然后把最长公共前缀长度不小于k的部分全部加起来(即A的后缀ai和B的后缀bj的最长公共前缀为x且x大于等于k,则答案累加上x-k+1)。由于枚举所有ai和bj的话是O(n^2)的复杂度,所以我们需要一些技巧来优化。比较好的方法是单调栈。首先将两个串连接到一起,
poursoul
·
2020-09-17 06:27
后缀数组【SA】
poj 3415 Common Substrings(
后缀数组
+单调栈+dp)
题目链接:点击打开链接博主是看了
后缀数组
那篇论文后,然后做了这道题练手。论文原文:基本思路是计算A的所有后缀和B的所有后缀之间的最长公共前缀的长度,把最长公共前缀长度不小于k的部分全部加起来。
qq_36398723
·
2020-09-17 06:59
ACM/ICPC
POJ - 3415 Common Substrings(
后缀数组
+ 单调栈)
思路:两个子串,我们用
后缀数组
维护,把两个子串合并在一起,然后中间加一个特殊字符。{看网上别人的博客。一个n长度的子串,我们把后边填一个0,就是在位置n上加0,这个字符串我们从0编号。
Top_xiao
·
2020-09-17 05:03
#
后缀数组
POJ_3415 Common Substrings
后缀数组
题目链接:http://poj.org/problem?id=3415题意:给你两个字符串str0、str1和K,求一共有多少个这样的三元组S{i,j,k}={(i,j,k)|str0{i...i+k-1}==str1{j..j+k-1}}。思路:题意就是在str0中找一个i,在str1中找一个j,要求他们的最长公共前缀l>=K,这样这组i,j对答案的贡献值就是l-K+1,最后我们要求的就是所有这
ivan_zjj
·
2020-09-17 05:30
ACM-杂题
poj 3415 Common Substrings (
后缀数组
+单调栈)
CommonSubstringsTimeLimit:5000MSMemoryLimit:65536KTotalSubmissions:10446Accepted:3444DescriptionAsubstringofastringTisdefinedas:T(i,k)=TiTi+1...Ti+k-1,1≤i≤i+k-1≤|T|.GiventwostringsA,BandoneintegerK,we
clover_hxy
·
2020-09-17 05:18
后缀数组
单调栈
POJ3415--Common Substrings(
后缀数组
+单调栈优化)
DescriptionAsubstringofastringTisdefinedas:T(i,k)=TiTi+1...Ti+k-1,1≤i≤i+k-1≤|T|.GiventwostringsA,BandoneintegerK,wedefineS,asetoftriples(i,j,k):S={(i,j,k)|k≥K,A(i,k)=B(j,k)}.Youaretogivethevalueof|S|f
SCUT_Pein
·
2020-09-17 05:38
字符串_后缀数组
Common Substrings POJ - 3415
后缀数组
+单调栈
AsubstringofastringTisdefinedas:T(i,k)=TiTi+1...Ti+k-1,1≤i≤i+k-1≤|T|.GiventwostringsA,BandoneintegerK,wedefineS,asetoftriples(i,j,k):S={(i,j,k)|k≥K,A(i,k)=B(j,k)}.Youaretogivethevalueof|S|forspecificA
YCQ_Lancet
·
2020-09-17 05:37
后缀数组
Common Substrings POJ - 3415(后缀自动机)
https://vjudge.net/problem/POJ-3415其实很早以前这道题就过了,但不过因为
后缀数组
的方法自己也不是很懂就没有写。今天我学了一下后缀自动机,我们利用后缀自动机解决。
KXL5180
·
2020-09-17 05:32
字符串
POJ 3415-Common Substrings(
后缀数组
+单调栈-公共子串的长度)
CommonSubstringsTimeLimit:5000MSMemoryLimit:65536KTotalSubmissions:10850Accepted:3587DescriptionAsubstringofastringTisdefinedas:T(i,k)=TiTi+1...Ti+k-1,1≤i≤i+k-1≤|T|.GiventwostringsA,BandoneintegerK,we
kewlgrl
·
2020-09-17 05:32
POJ
高级计划
ACM_KMP/后缀数组
POJ3415: Common Substring 题解
先把两个串拼起来,中间用不会出现的字符连一下然后求一下
后缀数组
和高度数组然后可以用一个单调栈维护一下lcp数组对于来自A的后缀,我们要统计它后面的来自B的后缀的答案,同样对于来自B的后缀,我们要统计它后面的来自
IcePrincess_1968
·
2020-09-17 05:31
SA
POJ 3415 Common Substrings(
后缀数组
+单调栈)
转载请注明出处,谢谢http://blog.csdn.net/acm_cxlove/article/details/7854526by---cxlove题目:求出长度不小于k的公共子串个数http://poj.org/problem?id=3415继续论文上的题目。计算A的某个后缀与B的某个后缀的最长公共前缀长度,如果长度L大于k,则加上L-k+1组。将两个字符串连接起来,中间用一个没有出现的字符
ACM_cxlove
·
2020-09-17 05:58
ACM_字符串
foj 2075 Substring
题目思路:
后缀数组
加单调栈,n为1的时候要特判,不过数据有点水,不判都能过。
iteye_13045
·
2020-09-16 23:01
数据结构
扩展KMP算法(Extend KMP) 学习小记 Hdu 4333 Revolving Digits
这里有一个字符串算法大集合:字符串:KMPEentend-Kmp自动机trie图trie树后缀树
后缀数组
-星星的日志Hdu4333RevolvingDigits题意:给出一个不含前导0的数字
时雨晴天
·
2020-09-16 19:33
学习轨迹
KMP
exKMP
字符串
ACM-
图论-SPFA poj3268模板题
这题可以用dijsktra/SPFA,我是用dijsktra先A的,然后再用SPFA试了一下,又调出来A了。本题题意:每个点到终点的最短路(包括返回的路程),找到各条最短路中的最大值。小重点/不TLE的方法题目模式:去了再回来(有向图)题解理解:各点去终点:(取反向后,即终点(源点)到各点距离(dp/dis[i]表示)终点回各点:(原来的edge取向,算终点(源点)到各点的距离(dp/dis[i]
oliveQ
·
2020-09-16 12:14
算法题解
poj
腾讯SOSO面试总结-细节决定成败
第二题想到了使用
后缀数组
,然后blabla说了一堆。回来网上查到好像后缀树解法最优。第三题要把边界和特殊情况考虑清楚,他给了
Garfier
·
2020-09-16 11:59
求职
面试
腾讯
算法
编程
java 实现
后缀数组
及最长回文子串问题
摘要:
后缀数组
的java实现。利用
后缀数组
来求解最长回文子串问题。关键词:
后缀数组
,倍增算法,基数排序,height[]数组,最长回文子串参考文献:《
后缀数组
_处理字符串的有效工具》。
ccfeng2008
·
2020-09-16 05:44
算法
源代码
Java编程
后缀排序[
后缀数组
详细整理]
#35.后缀排序统计描述提交自定义测试这是一道模板题。读入一个长度为nn的由小写英文字母组成的字符串,请把这个字符串的所有非空后缀按字典序从小到大排序,然后按顺序输出后缀的第一个字符在原串中的位置。位置编号为11到nn。除此之外为了进一步证明你确实有给后缀排序的超能力,请另外输出n−1n−1个整数分别表示排序后相邻后缀的最长公共前缀的长度。输入格式一行一个长度为nn的仅包含小写英文字母的字符串。输
weixin_34085658
·
2020-09-16 00:49
数据结构与算法
K-th occurrence HDU - 6704 (主席树+
后缀数组
+二分)
题目传送题意:给出一个字符串,找出某个子串第k次出现的位置思路:
后缀数组
sa[i]数组表示排名第i的后缀第一次出现的下标,求第k次出现的下标只需要在某个区间中求sa数组中的第k大即可(主席树求第k大),
speaker__
·
2020-09-15 23:04
算法
主席树
后缀数组
第7章 代码
后缀数组
poj1743poj3415poj2758线段树poj2828每个人依次插队,pos表示这个人会差到第pos个人的右边,树状数组维护,开始的时候全置1,表示每个位置都有一个人,就是最终的状态,然后按照时间顺序倒序处理
as305323460
·
2020-09-15 22:56
第7章 高级数据结构的编程实验
题目列表:http://acm.hust.edu.cn/vjudge/contest/128581#overview
后缀数组
poj1743poj3415poj2758线段树poj2828poj3468poj2528poj3667
as305323460
·
2020-09-15 21:35
数据结构与算法
ACM-
经典DP之Monkey and Banana——hdu1069
***************************************转载请注明出处:http://blog.csdn.net/lttree***************************************MonkeyandBananaTimeLimit:2000/1000MS(Java/Others)MemoryLimit:65536/32768K(Java/Others)T
ltree98
·
2020-09-15 19:08
ACM-DP(动态规划)
漫漫刷题路
【算法刷题】一个字符串中连续出现次数最多的子串
//字符串中连续出现次数最多的子串//利用
后缀数组
后缀数组
是一种数据结构,对一个字符串生成相应的
后缀数组
后,然后再排序,排完序依次检测相邻的两个字符串的开头公共部分。
Neo_dot
·
2020-09-15 16:45
算法题
[BZOJ4650][NOI2016]优秀的拆分-
后缀数组
优秀的拆分Description如果一个字符串可以被拆分为AABBAABB的形式,其中AA和BB是任意非空字符串,则我们称该字符串的这种拆分是优秀的。例如,对于字符串aabaabaa,如果令A=aabA=aab,B=aB=a,我们就找到了这个字符串拆分成AABBAABB的一种方式。一个字符串可能没有优秀的拆分,也可能存在不止一种优秀的拆分。比如我们令A=aA=a,B=baaB=baa,也可以用AA
zlttttt
·
2020-09-15 16:25
后缀数组
【Suffix
Array】
[bzoj4650][Noi2016]优秀的拆分——
后缀数组
题目大意:定义一个字符串的拆分是优秀的当且仅当是AABBAABBAABB的形式,求给定字符串的所有子串的所有的拆分中有多少是优秀的。思路:95分太好拿了,这里直接考虑正解该怎么做。不难发现我们只需要求出每个点开头的AAAAAA形式的字符串和每个点结尾的AAAAAA字符串,然后枚举分割点两边乘起来就好了。可是关键是AAAAAA形式的字符串可能有n2n^2n2个,直接枚举的话一定不是正解。考虑分长度来
ylsoi
·
2020-09-15 16:55
后缀数组
BZOJ4650 NOI2016优秀的拆分(
后缀数组
)
显然只要求出以每个位置开始的AA串数量就可以了,将其和反串同位置的结果乘一下,加起来就是答案。考虑对每种长度的字符串计数。若当前考虑的A串长度为x,我们每隔x个字符设一个关键点,求出相邻两关键点的后缀lcp和前缀lcs,交叉部分就是跨过这两个关键点的A串长度为x的AA串个数。差分一发就能对每个位置求了。#include#include#include#include#include#include
weixin_30484247
·
2020-09-15 15:36
[kmp] bzoj3620: 似乎在梦中见过的样子
很神的一道题第一眼并没有想到
后缀数组
因为不会写也不知道是不是脑抽了还是刚复习完kmp就想到了kmp但是不会处理(因为我比较菜)看了题解才知道原来N^2做法可以过……好叭大佬也帮忙算了一波复杂度其实没有N
kkkGIGi_qtt
·
2020-09-15 14:32
bzoj
kmp
BZOJ4650: [Noi2016]优秀的拆分(Hash/SA)
复杂度为∑ni=1ni=O(nlogn)∑i=1nni=O(nlogn)用
后缀数组
维护
DZYO
·
2020-09-15 14:59
后缀数组
hash
ACM-
数论之A hard puzzle——hdu1097
AhardpuzzleProblemDescriptionlcygivesahardpuzzletofeng5166,lwg,JGShiningandIgnatius:gaveaandb,howtoknowthea^b.everybodyobjectstothisBTproblem,solcymakestheproblemeasierthanbegin.thispuzzledescribestha
ltree98
·
2020-09-15 14:59
ACM-数论
漫漫刷题路
[TJOI&HEOI2016]str/[JZOJ4614]字符串
1≤|S|,m≤105题目分析显然可以使用
后缀数组
,我们要求的是maxi∈[a,b]{min(d−c+1,b−i+1,LCP(sufi,sufc))}根据
后缀数组
的性质,LCP可以在排序后的数组上使用RMQ
a_crazy_czy
·
2020-09-15 13:02
其它比赛和题库
二分法
后缀自动机
后缀数组
主席树
[
后缀数组
] BZOJ4650: [Noi2016] 优秀的拆分
令fi表示以i结尾的AA类型字符串的个数,gi则表示以i为开头的那么答案就是∑fi×gi+1枚举A的长度L,每隔L个位置放一个关键点,那么A肯定经过一个关键点,用SA找一下就好了#include#include#include#includeusingnamespacestd;typedeflonglongll;constintN=100010;intt,n;chara[N];intt1[N],t
LowestJN
·
2020-09-15 13:49
后缀数组
BZOJ 4556 [Tjoi2016&Heoi2016]字符串
后缀数组
+可持久化线段树+二分啊啊啊智商好低,想了好久。一个直观的想法是在s[a…b]中找到和s[c…d]最接近的串,使得height最大。
Endless_Way
·
2020-09-15 13:32
字符串-后缀
数据结构-可持久化线段树
其它-二分/三分
上一页
1
2
3
4
5
6
7
8
下一页
按字母分类:
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
其他