hdu 4691 后缀数组+rmq 求子串lcp
利用RMQ求子串lcp的基础题,这个板子是我之前的,比较蠢的一种实现 后面试试用最新的板子AC一下 #include<bits/stdc++.h> #define ll long long #define rep(ii,a,b) for(int ii=a;ii<=b;++ii) #define per(ii,a,b) for(int ii=b;ii>=a;--ii) using namespace std; const int maxn=2e5+10,maxm=2e6+10; const ll INF=0x3f3f3f3f,mod=1e9+7; int casn,n,m,k; const int csize=131; char s[maxn]; class suffix{public: int sa[maxn],rank[maxn],h[maxn]; int wa[maxn],wb[maxn],wc[maxn],wd[maxn]; char *str; void geth(int n){ int i,j,k=0; for(i=1;i<=n;++i) rank[sa[i]]=i; for(i=0;i<n;h[rank[i++]]=k) for(k?k--:0,j=sa[rank[i]-1];str[i+k]==str[j+k];++k); } void getsa(char *_s