这个不是题解,看不懂的,别看了 明明应该是会的,怎么还是写了6个小时呢... 把后缀数组.height数组.排名数组求出来,那么对于原串s的任意子串[x,y](表示第x个到第y个字符组成的子串,字符从1开始编号),就有了O(1)判断其在原串中出现次数是否大于1的方法 bool more1(int x,int y) { ?height[rk[x]]:-,t2=rk[x]<n?height[rk[x]+]:-; ||t2>=y-x+; } 就是找到x在后缀数组中的排名rk[x],再找到后缀sa[r…