题解: 后缀数组 然后把读入的内容去重,按照rank排序 然后用单调栈处理一下 代码: #include<bits/stdc++.h> using namespace std; typedef long long ll; ; const ll M=23333333333333333ll; int r[N],ra[N],rb[N],a,st[N],h[N],sa[N],rank[N],n,m,Q; ],Log[N],vis[N],v[N],s[N]; ll ans; char str[N]; v…