感谢Lost大佬
Lost大佬的【科技】强制在线 O(1) 逆元
改进版(减少时间复杂度和空间复杂度):
空间复杂度:O(223)O(2^\frac{2}{3})O(232 ) 最好 / 一般 / 最坏情况 完全一致
核心占用项:
容器 分配大小 空间量级 pre_sum m+1=n2+1m+1=n^2+1m+1=n2+1 O(223)O(2^\frac{2}{3})O(232 ) farey_num/farey_den 法里序列长度Θ(n2/logΘ(n^2/logΘ(n2/log n)n)n) O(223)O(2^\frac{2}{3})O(232 ) small_inv threshold+1=p/n+1threshold+1=p/n+1threshold+1=p/n+1 O(223)O(2^\frac{2}{3})O(232 )
时间复杂度:
场景 单次查询时间复杂度 批量查询(QQQ次)总复杂度 最好情况 O(1)O(1)O(1) O(Q)O(Q)O(Q) 一般情况 O(1)O(1)O(1)(紧界) O(Q+logO(Q+logO(Q+log p)p)p) 最坏情况 O(logO(logO(log p)p)p) O(Q⋅logp)O(Q⋅logp)O(Q⋅logp)
总时间复杂度:
场景 总时间复杂度 最好情况 O(p23+Q)O(p^\frac{2}{3}+Q)O(p32 +Q) 一般情况 O(p23+Q)O(p^\frac{2}{3}+Q)O(p32 +Q) 最坏情况 O(p23+Q⋅logO(p^\frac{2}{3}+Q⋅logO(p32 +Q⋅log p)p)p)