ARC 064 F-Rotated Palindromes
题意
问有多少个长度为 \(N\) 且字符集大小为 \(K\) 的字符串可以通过回文串旋转 (把第一个字符移到最后)若干次得到。\(N,K\le 10^9\)
做法
设\(f_i\)为最小周期为\(i\)的回文串个数
有\(f_i=K^{\left\lceil\frac{i}{2}\right\rceil}-\sum\limits_{j|i,j\neq i}f_{j}\)
若\(i%N\neq 0\),可以通过是回文串的性质,将其调整为更小的\(i\)或更大的\(i\),所以这里我们只考虑\(i|N\)
一个周期为\(i\),则可表示本质不同的\(i\)个串
若周期\(i\)为偶数,移位\(\frac{i}{2}\)后也是一个周期为\(i\)的回文串,所以会被统计两次
故:
\[Ans=\sum\limits_{d|N,d~is~odd}f_d\cdot d+\frac{1}{2}\sum\limits_{d|N,d~is~even}f_d\cdot d
\]
直接暴力是可过的