题目分析: 容易想到sa排好序之后,子串排名就是前面的子串减去height数组.所以正着做一遍,倒着做一遍就行了. 代码: #include<bits/stdc++.h> using namespace std; ; ; int n,q; char str[maxn]; int sa[maxn],rk[maxn],X[maxn],Y[maxn]; ]; int len[maxn],st1[maxn],st2[maxn]; long long stnum[maxn]; int chk(int x…