后缀数组
Rainbow6174
这个作者很懒,什么都没留下…
展开
-
后缀数组suffix模板
25min默完,漏掉了一些p=n时的小优化…还有m=p的常数优化 好在主体没什么问题,看来还是不够熟悉#include <iostream>#include <cstdio>#include <cstring>using namespace std;const int maxn = 100005;int sa[maxn], Rank[maxn], height[maxn];int wa原创 2016-03-02 20:54:15 · 539 阅读 · 0 评论 -
POJ3261 Milk Patterns 题解&代码
二分后对后缀数组的height分组…解决 第一次写(chao)后缀数组,调了两个多小时,代码都不会抄【笑 本来该附后缀数组学习记录,感觉快要吃饭了不想写…再说吧(正文在最后)发现了一个很玄妙的地方,二分方法不同的话时间差很大…大概是数据比较玄学?这是63ms版 l=1,r=n,mid; while(l<r) { mid=(l+r)/2; i原创 2016-02-19 16:22:53 · 527 阅读 · 0 评论 -
POJ 2774 Long Long Message 题解&代码
第二道后缀数组…其实感觉比上一道简单【23333 后缀数组的主要用法之一就是height[]…这道题就是把两个字符串用分隔符连接起来,求新字符串的height[],然后找到有效height的最大值即可【有效height就是该height对应的两个串分别在两个字符串中#include<iostream>#include<algorithm>#include<cstdio>#include<cs原创 2016-02-19 20:24:04 · 428 阅读 · 0 评论 -
HDU4416 Good Article Good sentence 题解&代码
啦啦啦,第三道强行算作今天(19号)完成,flag get,开心 这道看到它各种RE心都碎了…于是查出了两个错 1、关于字符串rank最后补0,我栽在了多组数据上…平时单组我就强行当做自己补过0了,结果吃了个亏,折腾了半个小时才发现 2、关于分隔字符也是人…23333333我开了2w+的数组RE了,交了好几遍改了好几次都没发现,最后看题解发现人家开了3w最近好像懒了很多,题解越来越短啦…不过今原创 2016-02-20 00:39:01 · 732 阅读 · 0 评论 -
POJ1743 Musical Theme 题解&代码
后缀数组… 对最长不重叠子串长度进行二分判定,判定方式是暴力分组 利用height[]的性质:如果height[i]>x,height[i-1]>x,那么存在从sa[i-2]到sa[i]的部分最长公共子串大于x 可以推论:对于height[i]~height[j]均大于x,那么存在sa[i-1]到sa[j]的部分最长公共子串大于x 这样可以得出对于一段连续的满足条件的height[],有连续原创 2016-03-09 22:04:32 · 415 阅读 · 0 评论 -
BZOJ4199 NOI2015 品酒大会 题解&代码
并查集维护…着急回宿舍(浪)明天再写详细题解/************************************************************** Problem: 4199 User: Rainbow6174 Language: C++ Result: Accepted Time:5992 ms Memory:29628 kb原创 2016-03-09 22:07:24 · 1134 阅读 · 0 评论 -
POJ3294 Life Form 题解&代码
报警了…交了11发WA最后发现数组开大RE之后代码一直是对的… 100个字符串长度是1000… 我都用的是100… 为什么不RE…QAQ 觉得从RE变成不RE数组就没问题还是too naive 【说好的后缀数组学习笔记呢【下周吧,先跟标准进度#include<iostream>#include<algorithm>#include<cstdio>#include<cstring>u原创 2016-02-27 17:44:17 · 753 阅读 · 2 评论