以前一直听说什么后缀数组height合并之类的 表示我这种后缀数组都敲不熟的蒟蒻怎么会写 但是做了做觉得还是很简单的嘛 这个题是有两问的,第一问是求LCP>=R的后缀对有多少个 这个就是AHOI2013 差异 稍微变个形啦 直接逆序建后缀自动机,在parent树上做一个很简单的树P就可以了 因为对于 ...
分类:
其他好文 时间:
2016-04-08 06:42:26
阅读次数:
199
显然我们可以先把len(Ti)+len(Tj)的值先算出来,再把LCP减去。所有len(Ti)+len(Tj)的值为n*(n-1)*(n+1)/2,这个随便在纸上画一画就可以算出来的。 接下来问题就是如何把LCP减去。我们先用后缀数组把height求出来,当有一段区间l~r,height[i]为he ...
分类:
编程语言 时间:
2016-04-04 01:29:08
阅读次数:
331
一 协议概述 PPP包含以下两个层次的协议: ·链路控制协议(LCP):负责建立、配置和测试数据链路连接 ·网络控制协议(NCP):负责建立和配置各种网络层协议(IP/IPX/AppleTalk) 1、为建立通信,PPP链路的每一端首先都必须发送LCP包,以配置数据链路。 2、在链路建立后,PPP链...
分类:
其他好文 时间:
2016-03-22 00:19:15
阅读次数:
796
【题目链接】 http://www.lydsy.com/JudgeOnline/problem.php?id=1014 【题意】 给定一个字符串,要求提供修改一个字符,插入一个字符,查询两个后缀LCP的功能。 【思路】 splay维护字符串的哈希值。因为要提供区间,splay采用先查找后调整至根的写
分类:
Web程序 时间:
2016-03-20 16:13:29
阅读次数:
264
题意:给N个单词组成的文章,输出每一个单词出现的次数 思路:连接后求sa,对每一个单词求lcp>=len[i]的最大范围 加了二分也没有快多少。。
分类:
编程语言 时间:
2016-03-18 01:45:57
阅读次数:
367
LCP Array Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)Total Submission(s): 830 Accepted Submission(s): 232 Probl
分类:
其他好文 时间:
2016-03-06 18:57:07
阅读次数:
264
LCP Array Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)Total Submission(s): 358 Accepted Submission(s): 102 Probl
分类:
其他好文 时间:
2016-03-06 01:00:26
阅读次数:
210
求一个串的最大回文字串。 可以用后缀数组解决。 分别考虑奇数和偶数回文子串的情况,枚举原串S的每个位置i作为中间位置看其能向左右两边同时拓展都哪儿:把原串S反转成S',拼接SaS'(a为一个特殊字符),最远拓展的地方便可以通过LCP(suffix[i],suffix[i'])求得,i'为i对应在S‘
分类:
编程语言 时间:
2016-02-21 11:34:39
阅读次数:
276
1 const int maxn=50010; 2 int r[maxn],Wa[maxn],Wb[maxn],Wv[maxn],Ws[maxn],rank[maxn],lcp[maxn],sa[maxn]; 3 4 bool cmp(int *p,int i,int j,int l) 5 {ret
分类:
编程语言 时间:
2016-02-18 23:00:29
阅读次数:
181
明显要用求SA再求h,而lcp(i,j)就等于i到j之间最小的h 用f[i]表示i跟比i大的后缀的lcp的和,然后用单调栈维护最小值就好了(有点像DP?) 1 #include<bits/stdc++.h> 2 #define inc(i,l,r) for(int i=l;i<=r;i++) 3 #
分类:
其他好文 时间:
2016-02-11 16:52:39
阅读次数:
336