题意

设 $f(n)$ 为 $n=ab$ 的方案数,其中 $a,b$ 为无平方因子数。求 $\displaystyle  \sum_{i=1}^nf(i)$,$n \leq 2e7$。

分析

显然,可发现 $f = \mu ^2 * \mu ^2$.

即 $\displaystyle f(n) = \sum_{d | n} \mu^2(d) \mu^2(\frac{n}{d})$

那么可以这样化简目标式

$$\begin{aligned} & \sum_{i = 1}^{n} f(i) \\ =& \sum_{i = 1}^{n} \sum_{d | i} \mu^2 (d) \mu^2 (\frac{i}{d}) \\ =& \sum_{d = 1}^{n} \sum_{d | i}^{1\leq i \leq n} \mu^2(d) \mu^2(\frac{i}{d}) \\ = & \sum_{d = 1}^{n} \mu^2 (d) \sum_{i = 1}^{\lfloor \frac{n}{d} \rfloor} \mu^2 (i) \end{aligned}$$

那么重点在于预处理出 $\mu^2$ 的前缀和,然后整除分块一下就可以了。

这里预处理的复杂度为 $O(n)$(可以用这一结论 $\displaystyle \sum_{i=1}^n \mu (i)^2 = \sum_{i=1}^{\left \lfloor \sqrt n \right \rfloor}\mu (i)\left \lfloor \frac{n}{i^2} \right \rfloor$ 降至 $O(\sqrt n)$),单次询问的复杂度为 $O(\sqrt n)$

数组全用 long long 会MLE。

#include<bits/stdc++.h>
using namespace std; typedef long long ll;
const int maxn = 2e7 + ;
int p[maxn], flg[maxn], mu[maxn];
ll sum_mu[maxn];
int n; void init(int N) {
int tot = ;
mu[] = ;
for (int i = ; i <= N; ++i) {
if (!flg[i]) {
p[++tot] = i;
mu[i] = -;
}
for (int j = ; j <= tot && i * p[j] <= N; ++j) {
flg[i * p[j]] = ;
if (i % p[j] == ) {
mu[i * p[j]] = ;
break;
}
mu[i * p[j]] = -mu[i];
}
}
for (int i = ; i <= N; ++i)sum_mu[i] = sum_mu[i-] + mu[i]*mu[i];
} int main()
{
init(2e7);
int T;
scanf("%d", &T);
while(T--)
{
scanf("%d", &n);
ll ans = ;
for(int l=, r;l <= n;l = r+)
{
r = n / (n/l);
ans += sum_mu[n/l] * (sum_mu[r] - sum_mu[l-]);
}
printf("%lld\n", ans);
}
return ;
}

参考链接:

1. http://www.cfzhao.com/2019/05/23/%E8%AE%A1%E8%92%9C%E5%AE%A2-a1956-sum/

2. 一道积性函数求和题(知乎)

2018 南京网络预赛Sum ——莫比乌斯反演的更多相关文章

  1. 2018 南京网络预赛Sum - 离线分段打表

    题意 设 $f(n)$ 为 $n=ab$ 的方案数,其中 $a,b$ 为无平方因子数. 例如,$f(6)=4$,因为 $6 = 1 \times 6 = 2 \times 3 = 3 \times 2 ...

  2. 2018 南京网络预赛Sum - 线性筛

    题意 链接 定义 $f(x)$ 为满足以下条件的有序二元组 $(a, b)$ 的方案数(即 $(a, b)$ 与 $(b, a)$ 被认为是不同的方案): $x= ab$ $a$ 和 $b$ 均无平方 ...

  3. acdream 1148 GCD SUM 莫比乌斯反演 ansx,ansy

    GCD SUM Time Limit: 8000/4000MS (Java/Others)Memory Limit: 128000/64000KB (Java/Others) SubmitStatis ...

  4. hdu4746:2013杭州网络赛I 莫比乌斯反演

    题意: 有5000组询问,每组询问求有多少i,j满足i∈[1,n],j∈[1,m]且gcd(i,j)的质因子数目<=p. n,m<=500000 思路: 首先预处理出每个数的质因子数目分别 ...

  5. 2019年南京网络赛E题K Sum(莫比乌斯反演+杜教筛+欧拉降幂)

    目录 题目链接 思路 代码 题目链接 传送门 思路 首先我们将原式化简: \[ \begin{aligned} &\sum\limits_{l_1=1}^{n}\sum\limits_{l_2 ...

  6. ACM-ICPC 2018 南京赛区网络预赛 Sum

    A square-free integer is an integer which is indivisible by any square number except 11. For example ...

  7. ACM-ICPC 2018 南京赛区网络预赛Sum,线性筛处理积性函数

    SUM 题意:f(n)是n可以拆成多少组n=a*b,a和b都是不包含平方因子的方案数目,对于a!=b,n=a*b和n=b*a算两种方案,求∑i=1nf(i) 首先我们可以知道,n=1时f(1)=1, ...

  8. 计蒜客 30999 - Sum - [找规律+线性筛][2018ICPC南京网络预赛J题]

    题目链接:https://nanti.jisuanke.com/t/30999 样例输入258 样例输出814 题意: squarefree数是指不含有完全平方数( 1 除外)因子的数, 现在一个数字 ...

  9. 2018南京网络赛 - Skr 回文树

    题意:求本质不同的回文串(大整数)的数字和 由回文树的性质可知贡献只在首次进入某个新节点时产生 那么只需由pos和len算出距离把左边右边删掉再算好base重复\(O(n)\)次即可 位移那段写的略微 ...

随机推荐

  1. Zero-shot Learning / One-shot Learning / Few-shot Learning

    Zero-shot Learning / One-shot Learning / Few-shot Learning Learning类型:Zero-shot Learning.One-shot Le ...

  2. lnmp 是不是该吐吐槽

    lnmp 提供提供了便捷 , 并且手也伸的挺长的,它已不仅仅是个服务器环境那么简单 作为服务器继承环境来讲,可能每个人的认知程度不一,总之用了它需要服从它的规则 但从个人感觉上,其埋的坑还是让人不适, ...

  3. [C++] 二叉树计算文件单词数

    目录 前置技能 构造和遍历二叉树 文件的打开.读取和写入 需求描述 读取文件 构建二叉树 格式化输入输出 具体实现 main.cpp binarytree.h binarytree.cpp 使用二叉树 ...

  4. PAT甲级题分类汇编——序言

    今天开个坑,分类整理PAT甲级题目(https://pintia.cn/problem-sets/994805342720868352/problems/type/7)中1051~1100部分.语言是 ...

  5. matplotlib笔记3

    关于matplotlib的绘制图形的基本代码,我们可以参照下面的连接 https://matplotlib.org/gallery/index.html https://matplotlib.org/ ...

  6. MySQL中的case when 中对于NULL值判断的坑

    sql中的case when 有点类似于Java中的switch语句,比较灵活,但是在Mysql中对于Null的处理有点特殊 Mysql中case when语法: 语法1: CASE case_val ...

  7. python练习:面向对象1

    面向对象习题: 一:定义一个学生类.有下面的类属性: 1 姓名 2 年龄 3 成绩(语文,数学,英语)[每课成绩的类型为整数] 类方法: 1 获取学生的姓名:get_name() 返回类型:str 2 ...

  8. 关于 false sharing

    问题来源 在多线程操作中,每个线程对操作对象都会有单独的缓存,最后将缓存同步到内存上,不加锁的话会导致数据缺乏同步出现错误,如果只是简单地加锁,性能就会飞速下降 解法 spacing &&am ...

  9. SQL链接服务器查询-OPENQUERY的使用

    OpenQuery: 用途:与其他Server交互的技术,通过它能够直接访问其他数据库资源.可以跨平台连接,包括Oracle   --创建链接服务器 exec sp_addlinkedserver ' ...

  10. pinfinder

    pinfinder https://pinfinder.net https://github.com/gwatts/pinfinder 关于 Pinfinder是一个小型免费程序,可以使用iPhone ...