2023.8.7 AT practise

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,然后枚举切点判断循环节即可。

posted @ 2023-08-07 22:00  s1monG  阅读(13)  评论(0编辑  收藏  举报