ARC060D
若 \(b^2\le n\),此时 \(b\) 很小,直接枚举即可。
若 \(\sqrt{n}<b<n\),此时发现其只有两位。
那么 \(n\bmod b+n/b=s\),即 \((n/b)*(b-1)=n-s\),考虑枚举 \(n-s\) 的约数判断即可。
ARC060E
考虑借用“弹飞绵阳”一题的套路,先分块,
然后预处理出 \(cnt_i,nxt_i\),表示走出这个块至少要 \(cnt_i\) 步,最远落在 \(nxt_i\) 这个位置。
然后计算即可。
ARC060F
先特判全部相同的串,答案是 n 1
.
在判若原串没有循环节,答案是 1 1
.
否则可以证明最多切成两个字符串。因为 \(n-1\),\(1\) 两个串已经合法。
正反两次 kmp,然后枚举切点判断循环节即可。