TopCoder 12584 SemiPerfectPower
前言
- 若是见到了,就是有道理了
题目描述
- 求 \([L,R]\) 中有多少整数,可以被分解成 \(ab^c\) 的结构
题解
- 显然,只需要满足 \(c\le 3\) 即可。
- 好,重点在于如何对 \(c=2\),\(c=3\) 计数。
- 显然,二者存在重复的
- 由 \(ab^c\le n,a < b\) 易知:\(a\le \sqrt[c+1]{n}\)
- 那我们枚举 \(c=2\) 的情况的 \(a\),把更多的时间留给 \(c=3\) 去去重,因为 \(c=3\) 时枚举 \(a\) 的范围小。
- 额,考虑如何统计答案。\(by^3\) 显然我们只考虑在 \(b\) 最小的时候统计答案。
- 理由:\(b\) 越小,\(y\) 越大,越容易满足 \(b<y\) 的条件。
- 接着,考虑重复 \(ax^2=by^3\) 就不好。
- 仔细考虑:
- 明确 \(x\) 最大,\(y\) 最大,不如要求 \(a\) 没有平方因子,\(b\) 没有立方因子。
- 诶,恰好,\(a,b\) 不大啊,那不妨预处理 \(P_2(x)=\) 没有平方因子,\(P_3(x)=\) 没有立方因子。
- 到此,分析一下
\[ans=\sum_{b=1}^{\sqrt[4]{n}}P_3(b)\sum_{y=b+1}^{\sqrt[3]{\frac{n}{b}}}\sum_{a=1}^{\sqrt[3]{n}}P_2(a)[a|by^3][a<\frac{by^3}{a}]
\]
- \(O(n^{\frac{1}{4}+\frac{1}{3}+\frac{1}{3}})=O(n^{\frac{11}{12}})\)
- 可若我们不枚举 \(a\) 而枚举 \(x\) 呢?\(x\) 仅有的限制是 \(x\le \sqrt[3]{n}\),但是注意到 \(y|x\) 好好想一想,\(x,y\) 都取得最大,那包有的啊
- 故此,设 \(x=ty\)
- 分析一下
- $a(ty)^2 = by^3 $ 有 \(at^2=by\) 有 \(a=\frac{by}{t^2}<ty\) 有 \(b<t^3\),此时存在 \(ax^2=by^3\) 若想不存在,需满足 \([t^3\le b]\),诶,这个 \(t\) 的范围就很有前途了,至少比枚举 \(a\) 有多了
- 注意别忘了,\(at^2=by\) 还有 \(t^2|by\),需满足 \([t^2|by]\)
\[ans=\sum_{b=1}^{\sqrt[4]{n}}P_3(b)\sum_{y=b+1}^{\sqrt[3]{\frac{n}{b}}}\sum_{t=1}^{\sqrt[3]{b}}P_2(\frac{by}{t^2})[t^2|by]
\]
-
\(O(n^{\frac{1}{4}+\frac{1}{3}+\frac{1}{12}})=O(n^{\frac{2}{3}})\)
-
想想怎们优化,注意到 \(P_2(\frac{by}{t^2})\) 把所有枚举量揉在了一起,尝试分离,$b\to y\to $ 式子,\(b\to t\to\) 式子,显然 \(b\) 是比较远
-
若把 \(yb\) 分开,与 \(y\) 有关的能预处理的话,那就大大降低了复杂度。
-
不妨设 \(b'=\frac{b}{gcd(b,t^2)}\),\(t'=\frac{t^2}{gcd(b,t^2)}\)
-
\(P_2(\frac{by}{t^2})[t^2|by]\) 化为 \(P_2(b'\cdot\frac{y}{t'})[t'|y]\) 注意到 \(P_2\) 是积性函数,因为只有 \(P_2\) 互质的时候才有值所以可以,\(P_2(b')P_2(\frac{y}{t'})[t'|y][gcd(b',\frac{y}{t'})=1]\)
-
不优美,不妨设 \(y=t'y'\),\(P_2(b')P_2(y')[gcd(b',y')=1]\),诶这样的话我们是不是可以不枚举 \(y\) 而去枚举 \(y'\) 了
\[ans=\sum_{b=1}^{\sqrt[4]{n}}P_3(b)\sum_{t=1}^{\sqrt[3]{b}}P_2(b')\sum_{y'=\frac{b}{t'}+1}^{\frac{\sqrt[3]{\frac{n}{b}}}{t'}}P_2(y')[gcd(b',y')=1]
\]
- 额,里面还没有完全独立开,把 \([gcd(b',y')=1]\) 叉开
\[ans=\sum_{b=1}^{\sqrt[4]{n}}P_3(b)\sum_{t=1}^{\sqrt[3]{b}}P_2(b')\sum_{y'=\frac{b}{t'}+1}^{\frac{\sqrt[3]{\frac{n}{b}}}{t'}}P_2(y')\sum_{c|gcd(b',y')}\mu(c)
\]
- 然后枚举 \(c|b'\),\(y'=\) \(c\) 的倍数
\[ans=\sum_{b=1}^{\sqrt[4]{n}}P_3(b)\sum_{t=1}^{\sqrt[3]{b}}P_2(b')\sum_{c|b'}\mu(c)\sum_{y'=\frac{b}{t'c}+1}^{\frac{\sqrt[3]{\frac{n}{b}}}{t'c}}P_2(cy')
\]
- 嘿嘿这样的话,\(yb\) 成功独立,后半部分 \(\sum_{y'=\frac{b}{t'c}+1}^{\frac{\sqrt[3]{\frac{n}{b}}}{t'c}}P_2(cy')\) 其实是以 \(c\) 分类的 \(P_2\) 的和,可以预处理,复杂度,大概 \(O(n^{\frac{1}{3}})\) 乘枚举约数,我不会算的个数

浙公网安备 33010602011771号