考虑设 fif_i 表示以 ii 结尾的串的最长长度,那么容易想到转移:

fai=maxj=0Vfj×[gcd(ai,j)1]f_{a_i}=\max\limits_{j=0}^V f_j\times[\gcd(a_i,j)\ne 1]

考虑怎么优化,设 gig_i 表示所有包含因子 ii 的最大的 ff,这样转移就只需要枚举自己的因子就行了,时间复杂度为 O(nV)O(n\sqrt{V})