题意
给定一个字符串$s$,长度为$n$,一根项链为一个环,定义一根项链为$k-beautiful$,则该项链顺时针转$k$下后与原项链相等,给出$k$,请构造一根最长的$k-beautiful$项链,项链由$s$中的一些字符组成,长度为$1$的项链和组成字符全部相等的项链满足任意$k$
分析
首先最小的答案是最大的字符个数,然后考虑项链中字符不全相等的情况,一根项链转$k$下不变,则$k$的某个因子可能也满足,不妨设为$j$,则$j-beautiful$的项链也满足$k-beautiful$,我们枚举因子$j$,然后找到可以构造出的最长项链,设项链为字符串$t$,注意到$j-beautiful$的项链有$t[1]=t[j+1],\cdots ,t[j-1]=t[2*j-1]$,注意到这个等式可以继续下去,那么我们要考虑项链的节数,每节有$j$个字符,那么要找到可以满足的最大节数,最长的$j-beautiful$项链即为:最大节数乘以$j$,这个最大节数具有二分性质,二分即可
1 |
|