表面上看这是一道LCS问题 LCS问题O(n2)的复杂度已经很优秀了 而这道题需要O(nlogn)以下的复杂度才能AC 所以我们要找经典问题的特殊性 特殊就在这两个串中,每个数字都是恰好出现5次 不难想到先预处理每个数在B串依次出现的位置 先扫一遍A串,对于每一个数a[i],设f[j]=LCS(i,j) 显然这个数在B串出现的位置才会更新答案 对于每个出现的位置x1~x5,显然f[x]=max(f[w])+1 (1<=w<=x-1); 为了避免重复更新,我们要从后往前更新f[x] 再考虑怎么快…