Warning: session_start(): open(/tmp/sess_2016dd9220cfe0b3c34c3dad1a06c566, O_RDWR) failed: No space left on device (28) in /data/wiki/inc/init.php on line 239

Warning: session_start(): Failed to read session data: files (path: ) in /data/wiki/inc/init.php on line 239

Warning: Cannot modify header information - headers already sent by (output started at /data/wiki/inc/init.php:239) in /data/wiki/inc/auth.php on line 430
Writing /data/wiki/data/cache/0/0a1fb0ef465f43d40a68985f0133c2ba.captchaip failed

Warning: Cannot modify header information - headers already sent by (output started at /data/wiki/inc/init.php:239) in /data/wiki/inc/actions.php on line 38

Warning: Cannot modify header information - headers already sent by (output started at /data/wiki/inc/init.php:239) in /data/wiki/lib/tpl/dokuwiki/main.php on line 12
2020-2021:teams:hotpot:杜教筛 [CVBB ACM Team]

用户工具

站点工具


2020-2021:teams:hotpot:杜教筛

差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录 前一修订版
后一修订版
前一修订版
2020-2021:teams:hotpot:杜教筛 [2020/05/22 18:07]
喝西北风
2020-2021:teams:hotpot:杜教筛 [2020/05/22 18:22] (当前版本)
喝西北风
行 1: 行 1:
 ====问题描述(洛谷4213)==== ====问题描述(洛谷4213)====
  
-给定N($N<​2^{31}$),求1到N的欧拉函数和莫比乌斯函数之和+给定$N(N<​2^{31}$),求1到N的欧拉函数和莫比乌斯函数之和
  
 ====解决方法==== ====解决方法====
行 32: 行 32:
  
 先线性求出$10^7$以内的$S(n),​T(n)$,对于大于$10^7$的$S(n),​T(n)$,可通过数论分块递归计算出。 先线性求出$10^7$以内的$S(n),​T(n)$,对于大于$10^7$的$S(n),​T(n)$,可通过数论分块递归计算出。
 +
 +====问题分析====
 +
 +===时间复杂度===
  
 可以证明,杜教筛的时间复杂度为$O(n^{\frac{3}{4}})$ 可以证明,杜教筛的时间复杂度为$O(n^{\frac{3}{4}})$
 +
 +===推广===
 +
 +这个问题的核心,是对于所求的$g(n)$,需要找到一个合适的$f(n)$,使得$\sum_{i=1}^n(f*g)(i)$能被快速计算出。
 +
 +可以尝试计算$\sum_{i=1}^n i\phi (i)$。提示:设$f(n)=n$。$(f*g)(n)=n^2$
  
 <​code/​cpp>​ <​code/​cpp>​
2020-2021/teams/hotpot/杜教筛.1590142020.txt.gz · 最后更改: 2020/05/22 18:07 由 喝西北风