
后缀数组
超越大哥哥
这个作者很懒,什么都没留下…
展开
-
poj2774(后缀数组)
#include<iostream>#include<cstdio>#include<string.h>#include<algorithm>#include<cmath>using namespace std;const int maxn = 2e5+100;char s[maxn];int t1[maxn],t2[...原创 2019-08-06 20:48:00 · 199 阅读 · 0 评论 -
2019CCPC网络赛K-th occurrence(后缀数组+ST+二分+主席树)
比赛的时候思路完全正确 但是不知道为啥卡在了二分上当时没整明白这个题确实有点东西....lcp函数当两个参数相同时是查找不到的 这个需要注意其余的就是利用rank找到对应的排名然后两个二分查询1..排名..n的符合条件的区间然后利用主席树维护SA数组区间第k大即可就是代码有点长#include<iostream>#include<cstdio&...原创 2019-09-10 17:42:45 · 310 阅读 · 0 评论 -
poj3261(后缀数组+二分+kuangbin模版注意问题)
#include<iostream>#include<cstdio>#include<string.h>using namespace std;const int maxn = 2000000+1000;int t1[maxn],t2[maxn],c[maxn*10];bool cmp(int *r, int a, int b, int l)...原创 2019-09-19 17:02:10 · 179 阅读 · 0 评论 -
life forms poj3294(写了很久才写过)
后缀数组还是不熟首先总数组的最后一个r[n]必须是0其次设置的最大值一定要比r中最大值大再其次 多个字符串拼接时 拼接的字符一定要不相同最后 题目给的n上限100莫名坑爹#include<iostream>#include<cstdio>#include<string.h>#include<algorithm>usin...原创 2019-09-23 19:05:23 · 140 阅读 · 0 评论 -
Distinct Substrings & New Distinct Substrings SPOJ(后缀数组统计所有不同的子串)
一个字符串所有子串的总数是n*(n+1)/2其实要遍历所有子串 就是找每个后缀的所有前缀然后又因为所有的后缀是经过后缀排序得来的 所以每个后缀与其他后缀相同的前缀最多就是Height[i]所以n*(n+1)/2 - sum(height[i])就是答案#include<iostream>#include<cstdio>#include<strin...原创 2019-09-26 12:21:36 · 213 阅读 · 1 评论