后缀数组/贪心 每次从等待序列的头或尾拿出一个放到答案序列的末尾,那么每次贪心比较头和尾的字典序大小即可…… TAT贪心很好想,但是我一开始没想到是可以直接比较字符串大小……而是一位一位判的,WA了…… 膜拜了zyf的做法TAT 1 /*****************************...
分类:
其他好文 时间:
2015-04-06 18:37:46
阅读次数:
178
#include
using namespace std;
const int N = 100000;
int num[N];
int sa[N], rank[N],height[N];
int wa[N], wb[N], wv[N], wd[N]; int cmp(int *r, int a, int b, int l)
{
return r[a] == r[b] &...
分类:
编程语言 时间:
2015-04-06 12:56:23
阅读次数:
212
后缀数组求有多少个不同的回文串
The Number of Palindromes
Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others)
Total Submission(s): 1976 Accepted Submission(s): 690
P...
分类:
编程语言 时间:
2015-04-05 20:34:16
阅读次数:
209
DescriptionYou may have wondered why most extraterrestrial life forms resemble humans, differing by superficial traits such as height, colour, wrinkles, ears, eyebrows and the like. A few bear no human...
分类:
编程语言 时间:
2015-04-04 12:22:20
阅读次数:
621
有种简单的方法,数组从左到右扫一遍,每次以当前的点为中心,只要左右相等就往左右走,这算出来的回文字符串是奇数长度的还有偶数长度的回文字符串就是以当前扫到的点和它左边的点作为中心,然后往左右扫这是O(n^2)的复杂度,这道题过还是没有问题的这里我主要练习的是另外的利用后缀数组加RMQ算法来解决这个问题...
分类:
其他好文 时间:
2015-04-04 01:10:03
阅读次数:
212
题目大意找到一个连续的子序列连续出现过两次,且这两次不相交,只要子序列中每个数都加/减一个数得到一个新的序列,也可以看作是相同的那么也就是说这道题目可以转化成找到两个子序列,这两个子序列中每个数前后的差值是相等的所以我们可以求所有数两两之间的差值,然后根据这个值建立后缀数组后,二分答案来解决问题 1...
分类:
编程语言 时间:
2015-04-03 00:15:18
阅读次数:
216
赤裸裸的模板题,刚开始忘记判断是否在同一字符串中了
#include
#include
#include
using namespace std;
typedef long long ll;
#define N 200010
char s1[100010],s2[100010];
int r[N];
int wa[N],wb[N],wv[N],ws[N],Rank[N],sa[N],heigh...
分类:
其他好文 时间:
2015-04-02 16:24:28
阅读次数:
117
n
#include
#include
#include
using namespace std;
typedef long long ll;
#define N 1005
char s[N];
int r[N];
int wa[N],wb[N],wv[N],ws[N],Rank[N],sa[N],height[N];
int cmp(int *r,int a,int b,int l){
r...
分类:
其他好文 时间:
2015-04-01 21:55:06
阅读次数:
126
刚开始直接把一个全局变量直接在函数里面赋值,结果一直WA
后来学乖了,里面用函数返回值把值传出来,就AC了
以后还是尽量少用全局变量吧,尤其是在有循环的地方,往往容易出错
还摸索出一个对付WA的方法,把别人的标程复制下来,自己随便编些数据,再拿标程的结果和自己的结果比对
顺便说下这道题m==1时要特判
#include
#include
#include
#include
#inclu...
分类:
其他好文 时间:
2015-04-01 15:32:32
阅读次数:
174
题意:给定两个字符串A 和B,求长度不小于k 的公共子串的个数(可以相同)。
样例1:
A=“xx”,B=“xx”,k=1,长度不小于k 的公共子串的个数是5。
样例2:
A =“aababaa”,B =“abaabaa”,k=2,长度不小于k 的公共子串的个数是22。
思路:
如果i后缀与j后缀的LCP长度为L, 在L不小于K的情况下, 它对答案的贡献为L - K + 1. 于是...
分类:
编程语言 时间:
2015-04-01 09:40:02
阅读次数:
208