SRM582 SemiPerfectPower

题意

给定\(l,r\),求有多少个\(x\in[l,r]\),使得\(x\)可以表示成\(a\cdot b^c(a<b,c>1)\)
(这个东西叫SemiPerfect number,直译过来就是半完美数)
\(l\le r\le 8\cdot 10^{16}\)

做法

一般的,以下考虑\(l=1,r=n\)

引理:每个半完美数都可表示成\(c=2\)\(c=3\)

证明:
\(c>3\)且为偶数,\(a\cdot b^{2k}=a\cdot (b^k)^2\)
\(c>3\)且为奇数,\(a\cdot b^{2k+1}=(ab)\cdot (b^k)^2\)

定义:令\(P_2(x)\)表示\(x\)是否没有非平凡的平凡数因子;令\(P_3(x)\)表示\(x\)是否没有非平凡的立方数因子、

定义:对于一个半完美数\(x\),其最小表示法为在满足\(c\)最小的情况下。若\(c=2\),则需满足\(P_2(a)=1\);若\(c=3\),则需满足\(P_3(a)=1\)

考虑计算最小表示法\(c=2\)
显然有\(a\le \sqrt[3]{n}\)
暴力枚举\(a\),至于是否有平方数因子可以用莫比乌斯函数判断

考虑计算最小表示法\(c=3\)
如何判断其不能用\(c=2\)表示呢?
\(a\cdot b^3=(ab)\cdot b^2\)
\(k^2|ab\),且\(k^2\)\(ab\)的最大平方因子
\((ab)\cdot b^2=(ab/k^2)\cdot (bk)^2\),其不能用\(c=2\)表示的充要条件为\(ab/k^2\ge bk\),即\(a\ge k^3\)

容易得到:

\[\sum\limits_{a=1}^{\sqrt[4]{n}}[P_3(a)]\sum\limits_{k=1}^{\sqrt[3]{a}}\sum\limits_{b=a+1}^{\sqrt[3]{n/a}}[k^2|ab]\cdot P_2(ab/k^2) \]

假设以下满足\(k^2|ab\)
\(k'=k^2/(k^2,a)\)
\(a'=a/(k^2,a)\)
\(b'=b/k'\)
那么\(P_2(ab/k^2)=P_2(a'\cdot b')=P_2(a')\cdot P_2(b')\cdot [(a',b')=1]\)

\[\sum\limits_{a=1}^{\sqrt[4]{n}}[P_3(a)]\sum\limits_{k=1}^{\sqrt[3]{a}}\sum\limits_{b'=a/k'+1}^{\frac{\sqrt[3]{n/a}}{k'}}P_2(a')\cdot P_2(b')\cdot [(a',b')=1] \]

\[\sum\limits_{a=1}^{\sqrt[4]{n}}[P_3(a)]\sum\limits_{k=1}^{\sqrt[3]{a}}P_2(a')\sum\limits_{d|a'}\mu(d)\sum\limits_{b'=a/k'+1}^{\frac{\sqrt[3]{n/a}}{k'}} [d|b']\cdot P_2(b') \]

我们这么处理:
预处理出\(\sum\limits_{i=1}^r [d|i]]\cdot P_2(i)\)
这个可以写成\(F(d,r/d)=\sum\limits_{i=1}^{r/d}P_2(id)\)(递推\(O(1)\)转移)
这个状态数是\(\int_{1}^{n^{1/4}}\frac{n^{1/3}}{x}dx=O(n^{1/3}ln(n))\)

然后我们暴力算前面三项,在long long范围内,我们习惯将\(n\)约数个数的上界定义为\(O(n^{1/3})\)
那么暴力算前三项的复杂度积分一下大约为:\(n^{7/18}\),实际中非常不满

posted @ 2020-12-16 21:44  Grice  阅读(155)  评论(0)    收藏  举报