后缀数组
文章平均质量分 74
Leo_Riddle
AFO
展开
-
bzoj P1031 [JSOI2007]字符加密Cipher
传送门 我果然是菜啊,调个裸sa竟然调了一个晚上。。 这题就是普通处理环,把原串复制一遍,做一遍sa就行了。 代码: #include #include #include using namespace std; const int Maxn=200005; char s[Maxn]; int n,m=256; int sa[Maxn],tp[Maxn],tax[Maxn],rank[原创 2017-07-10 20:39:54 · 345 阅读 · 0 评论 -
uoj P35 后缀排序
传送门 妥妥的后缀数组裸题(主要是楼主菜只会打这种题目),还有拓展lucas还没调对qwq菜飞了。。。 求sa和lcp,就是后缀数组求sa和height。 代码: #include #include #include using namespace std; const int Maxn=100005; char a[Maxn]; int tax[Maxn],tp[Maxn],sa[原创 2017-07-11 14:18:05 · 591 阅读 · 0 评论 -
洛谷 P2178 品酒大会(bzoj P4199 [Noi2015]品酒大会/uoj P131【NOI2015】品酒大会)
传送门 这道题一看就是一种非常恶心的感觉,事实的确如此恶心到我饭都吃不下去。。 我恐怕真的不适合这个竞赛。。 这道题我想的是sa+单调栈然后全世界都比我快,全世界都用的是并查集。。 好吧说下zz的做法:首先我们想想求lcp的过程两个后缀的lcp=rmq min height(i,j),那么我们考虑height[i]并维护一个单调递增栈,如果height[i]i)没有贡献那么就弹出,只要原创 2017-07-16 20:19:42 · 575 阅读 · 0 评论 -
bzoj P3172 [Tjoi2013]单词
做完这道题终于知道了什么叫做绝望。。 首先,这道题的读入坑到我wa了一页,然后这道题的读入坑了我一晚上,最后这道题的读入吧我玩废了。。 用血写出来的经验最后一个字符要赋'\0'。。 好了说说这道题后缀数组的做法: 把每个单词拼在一起中间由分隔符分开然后做一遍后缀数组,观察sa数组,容易发现如果一个单词包括另一个单词显然要有height[i]大于等于这个单词,如果height[i]小于这单词原创 2017-07-12 14:04:24 · 345 阅读 · 0 评论