题意:
∑ i = 1 n 2 w ( i ) , 其 中 w ( i ) 表 示 i 里 面 不 同 质 因 子 个 数 \sum_{i=1}^{n} 2^{w(i)},其中w(i)表示i里面不同质因子个数 i=1∑n2w(i),其中w(i)表示i里面不同质因子个数
解法:
先 考 虑 将 2 w ( i ) 变 成 看 得 懂 的 式 子 : 可 以 将 2 w ( i ) 转 化 为 : 将 w ( i ) 个 质 因 子 放 到 这 两 个 集 合 里 , 每 个 质 因 子 有 两 种 放 法 , 因 此 是 2 w ( i ) , ∑ i ∗ j = n , ( i , j ) = 1 1 就 是 所 有 可 能 的 放 置 方 案 数 . 因 此 : 2 w ( i ) = ∑ i ∗ j = n , ( i , j ) = 1 1 那 么 : ∑ i = 1 n 2 w ( i ) = ∑ k = 1 n ∑ i ∗ j = k , ( i , j ) = 1 1 = ∑ i ∗ j < = n , ( i , j ) = 1 1 = ∑ i ∗ j < = n [ ( i , j ) = = 1 ] = ∑ i ∗ j < = n e ( ( i , j ) ) 由 莫 比 乌 斯 函 数 性 质 : e ( n ) = ∑ d ∣ n μ ( d ) 那 么 式 子 可 以 变 为 : ∑ i ∗ j < = n ∑ d ∣ ( i , j ) μ ( d ) = ∑ i ∗ j < = n ∑ d ∣ i , d ∣ j μ ( d ) 改 变 枚 举 顺 序 , 式 子 可 以 变 为 : ∑ d = 1 n μ ( d ) ∑ i ∗ j < = n , d ∣ i , d ∣ j 1 右 边 i 和 j 都 是 d 的 倍 数 , 将 i ∗ j < = n 左 右 两 边 约 去 d , 那 么 式 子 可 以 变 为 : = ∑ d = 1 n μ ( d ) ∑ i ∗ j < = n / d 2 1 观 察 到 d 的 取 值 > n 时 , n d 2 = 0 , 因 此 d 只 需 要 枚 举 到 n 即 可 , 那 么 式 子 变 为 : ∑ d = 1 n μ ( d ) ∑ i ∗ j < = n d 2 1 右 边 ∑ i ∗ j < = n d 2 1 , 令 f ( x ) = ∑ i ∗ j < = x 1 , 这 是 可 以 预 处 理 的 , 那 么 式 子 可 以 变 为 : ∑ d = 1 n μ ( d ) f ( n d 2 ) , 这 里 已 经 可 以 单 组 询 问 O ( n ) , 不 预 处 理 的 做 法 ( n 比 较 大 的 时 候 f ( n d 2 ) 就 不 能 预 处 理 了 ) : ∑ d = 1 n μ ( d ) ∑ i ∗ j < = n d 2 1 的 右 边 ∑ i ∗ j < = n d 2 1 = ∑ i = 1 n d 2 ⌊ n d 2 i ⌋ 这 部 分 可 以 用 数 论 分 块 O ( n d 2 ) 计 算 . 好 像 还 能 优 化 , 但 是 我 太 菜 了 整 不 动 了 . . . 先考虑将2^{w(i)}变成看得懂的式子:\\ 可以将2^{w(i)}转化为:\\ 将w(i)个质因子放到这两个集合里,\\ 每个质因子有两种放法,因此是2^{w(i)},\\ \sum_{i*j=n,(i,j)=1}1 就是所有可能的放置方案数.\\ 因此:2^{w(i)}=\sum_{i*j=n,(i,j)=1}1\\ 那么:\sum_{i=1}^{n} 2^{w(i)}\\ =\sum_{k=1}^{n} \sum_{i*j=k,(i,j)=1}1\\ =\sum_{i*j<=n,(i,j)=1}1\\ =\sum_{i*j<=n}[(i,j)==1]\\ =\sum_{i*j<=n}e((i,j))\\ 由莫比乌斯函数性质:e(n)=\sum_{d|n}\mu(d)\\ 那么式子可以变为:\sum_{i*j<=n} \sum_{d|(i,j)}\mu(d)\\ =\sum_{i*j<=n}\sum_{d|i,d|j}\mu(d)\\ 改变枚举顺序,式子可以变为:\\ \sum_{d=1}^{n}\mu(d) \sum_{i*j<=n,d|i,d|j}1\\ 右边i和j都是d的倍数,将i*j<=n左右两边约去d,那么式子可以变为:\\ =\sum_{d=1}^{n}\mu(d) \sum_{i*j<=n/d^2}1\\ 观察到d的取值>\sqrt{n}时,\frac{n}{d^{2}}=0,\\ 因此d只需要枚举到\sqrt{n}即可,\\ 那么式子变为:\sum_{d=1}^{\sqrt{n}}\mu(d) \sum_{i*j<=\frac{n}{d^{2}}}1\\ 右边\sum_{i*j<=\frac{n}{d^{2}}}1,令f(x)=\sum_{i*j<=x}1,这是可以预处理的,\\ 那么式子可以变为:\sum_{d=1}^{\sqrt{n}}\mu(d)f(\frac{n}{d^2}),这里已经可以单组询问O(\sqrt{n}),\\ 不预处理的做法(n比较大的时候f(\frac{n}{d^2})就不能预处理了):\\ \sum_{d=1}^{\sqrt{n}}\mu(d) \sum_{i*j<=\frac{n}{d^{2}}}1的右边\sum_{i*j<=\frac{n}{d^{2}}}1=\sum_{i=1}^{\frac{n}{d^2}}\lfloor \frac{\frac{n}{d^2}}{i}\rfloor\\ 这部分可以用数论分块O(\sqrt{\frac{n}{d^2}})计算.\\ 好像还能优化,但是我太菜了整不动了... 先考虑将2w(i)变成看得懂的式子:可以将2w(i)转化为:将w(i)个质因子放到这两个集合里,每个质因子有两种放法,因此是2w(i),i∗j=n,(i,j)=1∑1就是所有可能的放置方案数.因此:2w(i)=i∗j=n,(i,j)=1∑1那么:i=1∑n2w(i)=k=1∑ni∗j=k,(i,j)=1∑1=i∗j<=n,(i,j)=1∑1=i∗j<=n∑[(i,j)==1]=i∗j<=n∑e((i,j))由莫比乌斯函数性质:e(n)=d∣n∑μ(d)那么式子可以变为:i∗j<=n∑d∣(i,j)∑μ(d)=i∗j<=n∑d∣i,d∣j∑μ(d)改变枚举顺序,式子可以变为:d=1∑nμ(d)i∗j<=n,d∣i,d∣j∑1右边i和j都是d的倍数,将i∗j<=n左右两边约去d,那么式子可以变为:=d=1∑nμ(d)i∗j<=n/d2∑1观察到d的取值>n时,d2n=0,因此d只需要枚举到n即可,那么式子变为:d=1∑nμ(d)i∗j<=d2n∑1右边i∗j<=d2n∑1,令f(x)=i∗j<=x∑1,这是可以预处理的,那么式子可以变为:d=1∑nμ(d)f(d2n),这里已经可以单组询问O(n),不预处理的做法(n比较大的时候f(d2n)就不能预处理了):d=1∑nμ(d)i∗j<=d2n∑1的右边i∗j<=d2n∑1=i=1∑d2n⌊id2n⌋这部分可以用数论分块O(d2n)计算.好像还能优化,但是我太菜了整不动了...