
后缀数组
hrbust_wgq
当我们理解了一个东西的时候,所应该做的,是将这个东西放下去,好让更多的人明白和掌握;而不是举起来,以一种高姿态故作高深。这不是科学文化发展和传播的正道。有时候,所谓的“一言以蔽之”,不经意间,就“蔽”掉了求知者的热情和渴望,同时也就“蔽”掉了科学文化的健康传承。
把问题说清楚,尽可能让更多的人明白,是博客的宗旨。直达本质,直达底层,去术语化,用最通俗、最平易的语言和讲解方式说清“到底是什么”、“原来是这样”,是要努力的方向。
展开
-
codeforces 432D 【kmp+dp】||【后缀数组】
codeforces 432D 【kmp+dp】||【后缀数组】Description:给出一个字符串,求有多少种长度的前缀和后缀相等,并且得到的这个前缀在原字符串中出现的次数。 solution1:kmp+dp 求前缀出现的次数,原来就写过: https://blog.youkuaiyun.com/qq_43653111/article/details/103354633 现在找一下前缀后缀相等:很容易发现n,nxt[n]就是一个 再找找nxt[nxt[n]]也是,gg了 scanf("%s原创 2020-06-10 16:37:19 · 241 阅读 · 0 评论 -
后缀数组
后缀数组定义定理SA基本过程实例(子串=后缀的前缀)定义1.sa[i]就表示排名为i的后缀的起始位置的下标2.rk[i]就表示起始位置的下标为i的后缀的排名3.LCP(i,j)为suff(sa[i])与suff(sa[j])的最长公共前缀4.height[i]=LCP(i,i-1);为什么要有LCP呢? ????(后面会说)定理显而易见的1.LCP(i,j)=LCP(j,i);2.LCP(i,i)=len(sa[i])=n-sa[i]+1;其他定理的证明:SA基本过程目的是求s原创 2020-06-10 14:41:34 · 288 阅读 · 0 评论