分析 首先,可以发现,区间是可以合并滴.把区间按左端点排序,对于两个区间[l1,r1].[l2,r2],当l1<=l2 and r1>=l2,那么,将它们合成一个新的区间[l1,r2].当一个位置不属于任何一个区间时,它自己独立成为一个区间. 接着dp,保证区间是从小到大的. 设f[i][j]表示在从S第i个区间,和子串T[j~|T|]的最长公共子串. 转移, 定义g[i]表示S第i个区间的长度 枚举子串T[j~j+g[i]-1]每一个位置,当枚举到k时,T[j~k]中T[k]的个数大于S第i…