IOI2009论文reference:http://www.cnblogs.com/staginner/archive/2012/02/02/2335600.html 1 int wa[maxn],wb[maxn],wv[maxn],ws[maxn]; 2 int cmp(int *r,int a,...
分类:
编程语言 时间:
2014-10-21 13:41:17
阅读次数:
241
Reference:IOI2009论文http://www.cnblogs.com/ziyi--caolu/p/3192731.html 1 #include "stdio.h" 2 #include "string.h" 3 #define maxn 200010 4 5 int wa[maxn....
分类:
编程语言 时间:
2014-10-21 13:35:09
阅读次数:
236
题意:给你一个长度为n的数组A,第一个最大,要求你把它切成三段然后分别翻转,问你翻转完后的字典序最小的数组分析:切成三段需要确定两个分割点,对于第一个分割点由于第一个数是最大的,那么只要求一下第一段翻转后字典序最小的就是答案,求这个字典序最小第一段的方法就是对翻转后的A建立后缀数组,取第一个符合要...
分类:
其他好文 时间:
2014-10-19 14:17:20
阅读次数:
291
Reincarnation
Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 131072/65536 K (Java/Others)
Total Submission(s): 2138 Accepted Submission(s): 732
Problem Description
Now you are back...
分类:
编程语言 时间:
2014-10-17 21:58:57
阅读次数:
279
不可重叠最长重复子串http://poj.org/problem?id=1743 1 #include 2 #include 3 using namespace std; 4 class Suffix_Array { ///后缀数组 5 static const int MV=20010;...
分类:
编程语言 时间:
2014-10-16 19:46:43
阅读次数:
290
后缀数组倍增算法超时,听说用3DC可以勉强过,不愿写了,直接用hash+二分求出log(n)的时间查询两个字符串之间的任意两个位置的最长前缀.我自己在想hash的时候一直在考虑hash成数值时MOD取多大,如果取10^18的话,那么两数相乘个就超LL了,但是取10^9的话又怕出现重复的可能大.后面才...
分类:
编程语言 时间:
2014-10-16 17:01:02
阅读次数:
245
总结了几天的后缀数组,终于完成了。不可重叠重复串;可重叠k次重复串; 不相同子串个数最长回文子串 连续重复子串重复次数最多的连续重复子串最长公共子串长度不小于k 的公共子串的个数不小于k 个字符串中的最长子串出现或反转后出现在每个字符串中的最长子串3个字符串,问其中公共子串分别为1,2,3...l的...
分类:
编程语言 时间:
2014-10-16 02:57:51
阅读次数:
309
题意:给两个字符串,求一个最短的子串。使得这个子串在两个字符串中出现的次数都等于1.出现的定义为:能够重叠的出现。解法:后缀数组的应用。从小枚举长度。假设一个长度len合法的话:则一定存在这个样的sa[i]排名。sa[i]与s[i+1]的公共前缀长度大于等于len,且sa[i]与[i-1]的公共前缀...
分类:
编程语言 时间:
2014-10-11 15:12:15
阅读次数:
213
算是后缀数组的入门题吧。 思路无比简单,要是直接套模板的话应该很容易秒掉。关于后缀数组看高中神犇的论文就可以学会了算法合集之《后缀数组——处理字符串的有力工具》话说这题暴力是可以过了,但是我们在做多校的时候就是用暴力过的,当时还不知道什么是后缀数组。。。靠着概念纯手敲了几个小时,把建SA,求heig...
分类:
编程语言 时间:
2014-10-10 23:50:37
阅读次数:
421
以POJ 1743为例。模板中的基数排序基于前向星。
具体证明过程详见 算法合集之《后缀数组——处理字符串的有力工具》,很不错的一篇论文。
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#pragma comment(l...
分类:
编程语言 时间:
2014-10-10 17:59:34
阅读次数:
227