powerful number & ULR #1 校验码

用 PN 做 min25 模板:

\(F(p^k) = p^k(p^k-1),F(p)=p(p-1)\)

构造 \(G(x) = x\varphi(x)\) ,\(H = F/G\) ,\(H\) 只在 PN 处有值。

\[\sum_{i=1}^n F(i) = \sum_{d=1}^n [d\in \text{PN}] H(d) \text{sum}G(n/d) \]


想要求:

\[\text{sum}q(\lfloor \dfrac nt \rfloor) \]


\[q(p^k) = p^{c\lfloor k/2 \rfloor} \]

\[q(p) = 1 \]

用 PN 做:

构造函数 \(G=I,H=q/I\),\(H\) 只在 PN 处有值。

算一算会发现:

\[H(p^k) = [k\bmod 2 = 0](p^{ck/2}-p^{ck/2-1}) \]

于是只在平方数处有值。

\[\text{sum}q(n) \]

\[=\sum_{i=1}^{\sqrt n} H(i^2)\lfloor\dfrac{n}{i^2}\rfloor \]

可以线性筛求 \(H(i^2)\) 前缀和,整除分块,做到 \(n^{1/3}\) .

怎么求所有的 \(\text{sum}q(\lfloor \dfrac nt \rfloor)\) 呢:

  • 对于阈值 \(<S\) 的线性筛前 \(S\) 个 \(q\) 。
  • 对于 \(>S\) 的 \(n/S\) 个,直接 \(\sum_{i=1}^{n/S} (n/i)^{1/3} = n/S^{2/3}\) 求。

\(S=n^{3/5}\) 可以做到 \(n^{3/5}\) 求出以上。


原问题的转化还是很复杂的:

设 \(f(p^k) = p^{k\bmod 2}\) 。

\[\sum_{i=1}^n \sum_{j=1}^m q(ij) \]

\[\sum_{d=1}^n g(d) \sum_{i\in [1,n],d|f(i)} \sum_{j\in [1,m],d|f(j)}q(i)q(j) \]

上一篇:PYQT之- QObject与线程QThread的关系


下一篇:【python】PyQt自学的一个demo