这不原题???
手动左转「『SDOI2014』数表」……
首先单纯度可以在欧拉筛的时候顺便筛出来。
然后设 \(n\) 的单纯度为 \(f(n)\)。
\[\begin{align*} & \sum\limits_{i = 1}^n \sum\limits_{j = 1}^m [f(\gcd(i,j)) \le p] \\ = & \sum\limits_{d = 1}^{\min(n,m)} [f(d) \le p] \sum\limits_{id \le \min(n,m)} \mu(i) \lfloor \dfrac n {id} \rfloor \lfloor \dfrac m {id} \rfloor \\ = & \sum\limits_{T = 1}^{\min(n,m)} \lfloor \dfrac n T \rfloor \lfloor \dfrac m T \rfloor \sum\limits_{d | T} [f(d) \le p] \mu(\dfrac T d) \end{align*}\]
然后套路地套上一个树状数组,复杂度 \(O(n \log^2 n + T \sqrt n \log n)\)(认为所有 \(n,m\) 同阶)。
代码:
1 |
|